Add bash script that generates package

This commit is contained in:
ionutboangiu
2023-06-15 08:42:56 -04:00
committed by Dan Christian Bogos
parent 77f63adffe
commit cac1dc82d0

65
packages/redhat_fedora/generate-package.sh Normal file → Executable file
View File

@@ -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 "$@"