From cac1dc82d0edfbacbdb9c2e8ad46a1dcb93e9dc5 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Thu, 15 Jun 2023 08:42:56 -0400 Subject: [PATCH] Add bash script that generates package --- packages/redhat_fedora/generate-package.sh | 65 +++++++++++++++------- 1 file changed, 45 insertions(+), 20 deletions(-) mode change 100644 => 100755 packages/redhat_fedora/generate-package.sh diff --git a/packages/redhat_fedora/generate-package.sh b/packages/redhat_fedora/generate-package.sh old mode 100644 new mode 100755 index 1b0f24754..1f62a4abe --- a/packages/redhat_fedora/generate-package.sh +++ b/packages/redhat_fedora/generate-package.sh @@ -1,37 +1,64 @@ #!/bin/bash set -e -WORKDIR=$HOME/cgr_build -SRCDIR=$HOME/go/src/github.com/cgrates/cgrates +# Default values +BUILD_DIR_DEFAULT=$HOME/cgr_build +SRCDIR_DEFAULT=$HOME/go/src/github.com/cgrates/cgrates + +# Parse options +while (( "$#" )); do + case "$1" in + --build-dir) + BUILD_DIR=$2 + shift 2 + ;; + --srcdir) + SRCDIR=$2 + shift 2 + ;; + -*|--*=) # unsupported flags + echo "Error: Unsupported flag $1" >&2 + exit 1 + ;; + *) # preserve positional arguments + PARAMS="$PARAMS $1" + shift + ;; + esac +done +# set positional arguments in their proper place +eval set -- "$PARAMS" + +# Assign defaults if variables are not set +BUILD_DIR=${BUILD_DIR:-$BUILD_DIR_DEFAULT} +SRCDIR=${SRCDIR:-$SRCDIR_DEFAULT} prepare_environment() { - echo "Preparing environment..." - sudo dnf install -y rpm-build - mkdir -p $WORKDIR/{BUILD,RPMS,SOURCES,SPECS,SRPMS} + echo "Making sure dependencies are installed..." + sudo dnf install -y rpm-build wget curl tar + echo "Creating build directories in $BUILD_DIR..." + mkdir -p $BUILD_DIR/{BUILD,RPMS,SOURCES,SPECS,SRPMS} } fetch_source() { echo "Fetching source code..." cd $SRCDIR - gitLastCommit=$(git rev-parse HEAD) - rpmTag=$(git log -1 --format=%ci | date +%Y%m%d%H%M%S)+$(git rev-parse --short HEAD) - wget -P $WORKDIR/SOURCES https://github.com/cgrates/cgrates/archive/$gitLastCommit.tar.gz + export gitLastCommit=$(git rev-parse HEAD) + export rpmTag=$(git log -1 --format=%ci | date +%Y%m%d%H%M%S)+$(git rev-parse --short HEAD) + if [ ! -f $BUILD_DIR/SOURCES/$gitLastCommit.tar.gz ]; then + wget -P $BUILD_DIR/SOURCES https://github.com/cgrates/cgrates/archive/$gitLastCommit.tar.gz + fi } copy_spec_file() { - echo "Copying spec file..." - cp $SRCDIR/packages/redhat_fedora/cgrates.spec $WORKDIR/SPECS + echo "Copying RPM spec file..." + cp $SRCDIR/packages/redhat_fedora/cgrates.spec $BUILD_DIR/SPECS } build_package() { echo "Building RPM package..." - cd $WORKDIR - rpmbuild -bb --define "_topdir $WORKDIR" SPECS/cgrates.spec -} - -cleanup() { - echo "Cleaning up..." - rm -rf $WORKDIR/SOURCES/* + cd $BUILD_DIR + rpmbuild -bb --define "_topdir $BUILD_DIR" SPECS/cgrates.spec } main() { @@ -39,8 +66,6 @@ main() { fetch_source copy_spec_file build_package - cleanup } -main "$@" - +main "$@" \ No newline at end of file