diff options
Diffstat (limited to 'packaging/dxs2tgz')
-rwxr-xr-x | packaging/dxs2tgz | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/packaging/dxs2tgz b/packaging/dxs2tgz new file mode 100755 index 00000000..1f55246c --- /dev/null +++ b/packaging/dxs2tgz @@ -0,0 +1,75 @@ +#!/bin/sh +# +# This script transforms the dxs project files to debians +# binary package format .deb + +DEBUG=0 +# This function makes the directory of this script to the present working directory +# It is called within precheck() +# Does also work when called by symbolic links (even for nested links). +goto_script_dir() +{ + [ $DEBUG -ge 2 ] && echo "Aufgerufen wurde $0, checking if it is a link" + calleddetails=`ls -l $0` # get the file flags (e.g. lrwxrwxrwx) + [ $DEBUG -ge 2 ] && echo $calleddetails + + calleddir=${0%/*} # Strip the filename from path + [ $DEBUG -ge 2 ] && echo "Wechsele ins Verzeichnis des aufgerufenen scripts/links ($calleddir)" + cd $calleddir + + while index=`expr index "$calleddetails" "l"`; + [ $index -eq 1 ]; do + + [ $DEBUG -ge 2 ] && echo "It is a link" + target=`echo $calleddetails | awk '{print $NF}'` + [ $DEBUG -ge 2 ] && echo "The target of the link is: $target" + hasslash=`expr index "$target" "/"` + if [ $hasslash -ne 0 ]; then + targetpath=${target%/*} # extract the pathname + [ $DEBUG -ge 2 ] && echo "Following link to $targetpath" + cd $targetpath + else + [ $DEBUG -ge 2 ] && echo "It is in the same directory as the link" + fi + targetfile=`basename $target` + [ $DEBUG -ge 2 ] && echo "The target file of the link is: $targetfile" + calleddetails=`ls -l $targetfile` # get the file flags (e.g. lrwxrwxrwx) + [ $DEBUG -ge 2 ] && echo $calleddetails + done + [ $DEBUG -ge 2 ] && pwd + +} +dpkg_deb=`which dpkg-deb` +if [ -z "$dpkg_deb" ];then + echo "You need the program dpkg-deb (contained in package dpkg) to build a debian package" + exit +fi + +goto_script_dir +#Create Temporary working directory +mkdir -p /tmp/ld$$/dxs +mkdir -p /tmp/ld$$/man/ +cp default_files/*.1.gz /tmp/ld$$/man/ +cp default_files/*install.sh /tmp/ld$$/ + +#Goto project root +pushd .. > /dev/null +#copy all relevant file to a tar archive (can't use xargs with cp) +find -type f| grep -v /\.svn | grep -v \#.*\# | grep ^\./in | grep -v ~$ | xargs tar rf /tmp/ld$$/dxs/tmp.tar +#extract it +pushd /tmp/ld$$/dxs > /dev/null +tar xf tmp.tar +rm tmp.tar + +#Create the package +pushd /tmp/ld$$/ > /dev/null +find -type f |xargs tar rf dxs.tar +gzip dxs.tar +popd > /dev/null + +#And bring the package back to the dir of this script +popd > /dev/null +popd > /dev/null +mv /tmp/ld$$/dxs.tar.gz ./dxs.tgz +rm -rf /tmp/ld$$ +echo "Written './dxs.tgz'" |