forked from Proxmox-Port/Proxmox-Port
129 lines
3.5 KiB
Bash
Executable File
129 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
PKGNAME=$1
|
|
SH_PATH=$(readlink -f `dirname "$0"`)
|
|
PKG_LOCATION_PATH="/tmp/2022"
|
|
DEB_OPT="dd"
|
|
|
|
errlog(){
|
|
echo $1;
|
|
exit 1;
|
|
}
|
|
|
|
copy_dir(){
|
|
rsync -ra $SH_DIR/$PKGNAME /build
|
|
cd /build/$PKGNAME
|
|
}
|
|
|
|
if [ ! -n "$PKGNAME" ];then
|
|
errlog "Useage: ./build.sh pve-common"
|
|
fi
|
|
|
|
if [ ! -d "$SH_PATH/packages/$PKGNAME" ];then
|
|
errlog "$PKGNAME is not exsited!"
|
|
fi
|
|
|
|
if [ -n "$PKG_DIR" ];then
|
|
PKG_LOCATION_PATH=$PKG_DIR
|
|
fi
|
|
|
|
if [ -n "$DEB_BUILD_OPTIONS" ];then
|
|
DEB_OPT=$DEB_BUILD_OPTIONS
|
|
fi
|
|
|
|
dscflag="dsc"
|
|
|
|
if [[ "$DEB_BUILD_OPTIONS" == *"nodsc"* ]];then
|
|
dscflag="nodsc"
|
|
fi
|
|
|
|
echo "--------------info------------------"
|
|
echo "This is Proxmox-Port package build scripts"
|
|
echo "Package is $PKGNAME"
|
|
echo "Docker build is $BUILDERNAME"
|
|
echo "Package dir is $PKG_LOCATION_PATH/$PKGNAME"
|
|
if [ -n "$DEB_BUILD_OPTIONS" ];
|
|
then
|
|
echo "DEB_BUILD_OPTIONS = $DEB_BUILD_OPTIONS"
|
|
fi
|
|
echo "--------------start-----------------"
|
|
|
|
dockerbuild(){
|
|
rm $SH_PATH/packages/$PKGNAME/$PKGNAME/pvebuild -rf
|
|
if [ -n "$BUILDERNAME" ];then
|
|
docker run -it -e DEB_BUILD_OPTIONS=$DEB_OPT -e PKGDIR=$SH_PATH/packages/$PKGNAME/$PKGNAME -v $SH_PATH/:$SH_PATH --name $PKGNAME --rm $BUILDERNAME || errlog "builderror"
|
|
else
|
|
docker run -it -e DEB_BUILD_OPTIONS=$DEB_OPT -e PKGDIR=$SH_PATH/packages/$PKGNAME/$PKGNAME -v $SH_PATH/:$SH_PATH --name $PKGNAME --rm pvebuilder|| errlog "builderror"
|
|
fi
|
|
}
|
|
|
|
upload_pkg(){
|
|
rm $PKG_LOCATION_PATH/$PKGNAME -rf
|
|
mkdir $PKG_LOCATION_PATH/$PKGNAME -p
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.deb" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.buildinfo" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.changes" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.dsc" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
find "$SH_PATH/packages/$PKGNAME/$PKGNAME" -name "*.tar*" -exec cp {} $PKG_LOCATION_PATH/$PKGNAME \;
|
|
ls $PKG_LOCATION_PATH/$PKGNAME/
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.deb`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.buildinfo`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.changes`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
|
|
if [ $dscflag == "dsc" ];then
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.dsc`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
for i in `ls $PKG_LOCATION_PATH/$PKGNAME/*.tar*`;
|
|
do
|
|
md5sum $i > $i.md5
|
|
cat $i.md5
|
|
done
|
|
fi
|
|
|
|
}
|
|
|
|
update_submodues(){
|
|
rm $SH_PATH/packages/$PKGNAME/$PKGNAME/ -rf
|
|
mkdir $SH_PATH/packages/$PKGNAME/$PKGNAME/
|
|
git submodule update --init --recursive "$SH_PATH/packages/$PKGNAME/$PKGNAME"
|
|
}
|
|
|
|
update_submodues || errlog "Failed to update submodule"
|
|
|
|
if [ -f "$SH_PATH/packages/$PKGNAME/series" ];then
|
|
cd "$SH_PATH/packages/$PKGNAME/$PKGNAME"
|
|
for i in `cat $SH_PATH/packages/$PKGNAME/series`;
|
|
do patch -p1 < $SH_PATH/packages/$PKGNAME/$i
|
|
done
|
|
fi
|
|
|
|
ARCH=$(arch)
|
|
|
|
if [ -f "$SH_PATH/packages/$PKGNAME/series.$ARCH" ];then
|
|
cd "$SH_PATH/packages/$PKGNAME/$PKGNAME"
|
|
for i in `cat $SH_PATH/packages/$PKGNAME/series.$ARCH`;
|
|
do patch -p1 < $SH_PATH/packages/$PKGNAME/$i
|
|
done
|
|
fi
|
|
|
|
cd $SH_PATH
|
|
|
|
dockerbuild
|
|
upload_pkg || errlog "upload pkg failed"
|
|
|