ultimatepp/uppbox/Scripts/uppnighty2deb
amrein b320303ca9 Be sure to use '/usr/bin/env bash' in all scripts for compatibility and portability
git-svn-id: svn://ultimatepp.org/upp/trunk@10779 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2017-01-28 14:35:37 +00:00

132 lines
2.9 KiB
Bash
Executable file

#!/usr/bin/env bash
# uppnighty2deb
# From a 'nighty build' source tree, batch builds theide and creates .deb package
#
######################################################################
#convert a path to absolute one
rel2abs()
{
# make sure file is specified
if [ -z "$1" ]
then
echo "$0 <path>"
return 1
fi
# already absolute case
if [ "${1:0:1}" = "/" ] || [ "$PWD" = "/" ]
then
ABS=""
else
ABS="$PWD"
fi
# loop thru path
IFS="/"
for DIR in $1
do
if [ -n "$DIR" ]
then
if [ "$DIR" = ".." ]
then
ABS="${ABS%/*}"
elif [ "$DIR" != "." ]
then
ABS="$ABS/$DIR"
fi
fi
done
IFS=":"
echo $ABS
return 0
}
######################################################################
echo
echo "UPP NYGHTY2DEB BUILDER"
echo "CopyRight(c) 2009 By Massimo Del Fedele"
echo
# checks for parameters
if [ x"$1" = x -o x"$2" = x ]
then
echo "uppnighty2deb <upp root> <dest folder>"
exit 1
fi
#sets up source and dest folder names
src=$(rel2abs $1)
dst=$(rel2abs $2)
#locates 'uppdeb' and 'idebuild' scripts
uppdeb="`which uppdeb`"
if [ x$uppdeb = x ]
then
# couldn't find it on path, just try on this script's path
LSOF=$(lsof -p $$ 2>/dev/null | grep -E "/"$(basename $0)"$")
uppdeb=$(echo $LSOF | sed -r s/'^([^\/]+)\/'/'\/'/1 2>/dev/null)
uppdeb=$(dirname $uppdeb)/uppdeb
fi
if [ ! -f $uppdeb ]
then
echo "ERROR - Could not find 'uppdeb' script"
echo "Please check if it's on current path"
exit 1
fi
idebuild="`which idebuild`"
if [ x$idebuild = x ]
then
# couldn't find it on path, just try on this script's path
LSOF=$(lsof -p $$ 2>/dev/null | grep -E "/"$(basename $0)"$")
idebuild=$(echo $LSOF | sed -r s/'^([^\/]+)\/'/'\/'/1 2>/dev/null)
idebuild=$(dirname $idebuild)/idebuild
fi
if [ ! -f $idebuild ]
then
echo "ERROR - Could not find 'idebuild' script"
echo "Please check if it's on current path"
exit 1
fi
#checks if source folder is an upp folder
for name in uppsrc examples tutorial reference bazaar
do
if [ ! -d $src/$name ]
then
echo "bad source folder '$src'"
echo "missing '$src/$name' subfolder"
exit 1
fi
done
#gets release number from uppsrc/ide/version.h
release="`cat $src/uppsrc/ide/version.h`"
release=${release#*\"}
release=${release%%\"*}
echo "building .deb for nighty build $release"
#creates a temporary folder for executable file
outtmp="`mktemp -t -d uppnighty2deb.XXXXXXX`"
#build theide
echo "building TheIDE......"
bash $idebuild $src $outtmp/theide
if [ $? = 0 ]
then
true
else
echo "Error building TheIDE"
echo "Please check executables for errors"
exit 1
fi
#creates the deb package
echo "Creating package......"
bash $uppdeb $src $outtmp/theide $dst $release
result=$?
#remove temporary folder
rm -rf $outtmp