echo "usage: configure <package> <revision> [options]"
echo " -b <branch-rev>"
echo " -a <arch>"
+ echo " -g <alternative repository>"
+ echo " -n : do not delete src dir"
}
# to build a package you need ...
paket=$1
build=$2
+shift 2
ARCH=""
cpp_build=0
+alt_repos=""
+delete_src=1
-shift 2
-while getopts "b:a:" opt
-do
+while getopts ":a:b:g:n" opt; do
case $opt in
- a) ARCH=$OPTARG
- ;;
- b) echo "branching not implemented"
- ;;
- *) exit 1
- ;;
+ a) ARCH=$OPTARG
+ ;;
+ b) branch=$OPTARG
+ ;;
+ g) alt_repos="-g $OPTARG"
+ ;;
+ n) delete_src=0
+ ;;
+ \?) echo "Invalid option: -$OPTARG"
+ echo_usage
+ exit 1
+ ;;
+ :) echo "Option -$OPTARG requires an argument."
+ echo_usage
+ exit 1
+ ;;
esac
done
-# checkout build utilities
-if [ ! -d projects ]; then
- git clone https://github.com/wagner-tech/projects/
-fi
ln -sf projects/tools/make/makefile .
# check standard files
fi
# clean dirs and check out
-if [ -d src ]
+if [ -d src -a $delete_src -eq 1 ]
then
- echo "Shall I delete src dir? [y]/n"
- read key
- if [ "$key" != "n" ]
- then
- rm -rf src
- fi
+ rm -rf src
fi
if [ -e $paket ]
# checkout
pushd src >/dev/null
- ../$paket.co $build
+ ../$paket.co $alt_repos $build
popd >/dev/null
# load util functions for C/C++ - build
fi
# copy package control
-control=$(find src -name $paket.control)
+control=$(find -L src -name $paket.control)
+build_number=${build#*_}
if [ -z "$control" ]
then
echo "warning: control file not found"
echo " this file is necessary for any package production."
else
- sed "s/%BUILD%/$build/" $control |sed "s/%ARCH%/$ARCH/" >$paket.control
+ sed "s/%BUILD%/$build_number/" $control |sed "s/%ARCH%/$ARCH/" >$paket.control
echo "$paket.control written."
# extract version
fi
# check for copy file
-copy=$(find src -name $paket.cp)
+copy=$(find -L src -name $paket.cp)
if [ -n "$copy" ]
then
ln -sf $copy .
echo " this file is necessary for any package production."
fi
-# check for postinst
-postinst=$(find src -name $paket.postinst)
-if [ -n "$postinst" ]
-then
- ln -sf $postinst .
-fi
+# check for installation scripts
+files=$(find -L src -name $paket.preinst)
+files="$files $(find -L src -name $paket.postinst)"
+files="$files $(find -L src -name $paket.prerm)"
+files="$files $(find -L src -name $paket.postrm)"
+for file in $files
+do
+ ln -sf $file .
+done
# create generic make.pre, if not existing
if [ ! -f make.pre ]
project = $paket
COPY = ./$paket.cp
MAKE_PRE
+ if [ -n "$ARCH" ]
+ then
+ echo "arch = $ARCH" >>make.pre
+ echo "_arch = _${ARCH}" >>make.pre
+ fi
echo "make.pre written."
fi
# append version to make.pre
echo "version = $version" >> make.pre
+echo "build = $build" >> make.pre