open5gs/misc/osc-upload.sh

92 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
for arg in "$@"; do
if [ "$arg" = "-h" ]; then
echo "Usage: ./build/osc-upload.sh [PROJECT]"
echo ""
echo " PROJECT: snapshot(=Default), release"
echo ""
echo " This script is used to upload a source package to OBS(OpenSUSE Build Service)."
echo ""
echo " This script must be called from the base directory of the repository, and"
echo " requires utilites from these packages: git-buildpackage osc git"
echo ""
exit
fi
done
if [ ! -x /usr/bin/dpkg-parsechangelog ]; then
echo "Missing the dpkg-parsechangelog utility from the dpkg-dev package"
exit 1
fi
if [ ! -f debian/changelog ]; then
echo "This script must be called from the base directory of the package"
exit 1
fi
if [ ! -d .git ]; then
echo "This script only works from within a repository"
exit 1
fi
if [ ! -x /usr/bin/gbp ]; then
echo "Missing git-buildpackage"
exit 1
fi
PACKAGE=$(dpkg-parsechangelog | sed -n 's/^Source: //p')
DT="$(date +%Y%m%d)+git$(git rev-parse --short HEAD)"
TOP=$(pwd)
OGS_REPO=$TOP/build/obs-repo
PROJECT=home:acetcom:open5gs:${1-snapshot}
OBS_DIR=$OGS_REPO/$PROJECT/$PACKAGE
prepare() {
if [ -d $OBS_DIR ]; then
(cd $OBS_DIR && osc up)
else
mkdir -p $OGS_REPO
(cd $OGS_REPO && osc co $PROJECT $PACKAGE)
fi
}
DEB_SRC=$TOP/build/deb-src
DEB_DIR=$DEB_SRC/$PACKAGE
build_package() {
if [ ! -d $DEB_DIR ]; then
mkdir -p $DEB_DIR
fi
./build/git-version-gen . > .tarball-version 2>/dev/null
gbp buildpackage -S --no-sign -d \
--git-ignore-branch --git-ignore-new "--git-export-dir=$DEB_DIR" \
--git-postexport='cp $GBP_GIT_DIR/../.tarball-version $GBP_TMP_DIR/'
rm -f .tarball-version
cd $OBS_DIR
file=$(cd "$DEB_DIR/" ; ls ./*.dsc)
echo $file
if [ -e "$file" ] ; then
osc rm ./* || true
fi
mv "$DEB_DIR/"*.dsc .
mv "$DEB_DIR/"*.tar* .
osc add ./*
rm "$DEB_DIR/"*
rmdir "$DEB_DIR/"
rmdir "$DEB_SRC/"
cd $TOP
}
prepare
build_package
(cd $OBS_DIR && osc ci -m "Snapshot versions of $DT")