#/bin/sh # # hdw - linux ./scripts/Create-Binary # # this script is used to create the binary packages # package="" tar_name="" my_root="" while [ "$1" ] ; do case "$1" in all) package=all ; shift 1 ;; -package) package=$2 ; shift 2 ;; -tar-name) tar_name=$2 ; shift 2 ;; -root) my_root=$2 ; shift 2 ;; *) echo "usage: $0 -package -tar-name -root " exit 1 ;; esac done # do we run? if [ -z "$package" ] ; then echo "no package specified" exit 1 fi # how to call the packaged tar file (no .tar.bz2 ending!) [ -z "$tar_name" ] && tar_name="$package" # get Config & set hdw_home_dir . ./Config && hdw_home_dir=`pwd` # which root to use? [ ! -z "$my_root" ] && hdw_build_dir="$my_root" # create binary directory if [ ! -z "$hdw_arch_opt" ]; then bin_dir=${hdw_arch}-${hdw_arch_opt} else bin_dir=${hdw_arch}-generic fi pkg_dir=`echo $package | sed 's%-[0-9].%%'` pkg_dir=`echo $pkg_dir | sed 's%-[0-9]%%'` pkg_dir=`echo $pkg_dir | sed "s%\(.*\)\.\(.*\)%\1%"` pkg_dir=`echo $pkg_dir | sed 's%-x%%'` mkdir -p binaries/$bin_dir # single package if [ "$package" != "all" ] ; then if [ -d ./binaries/$bin_dir/${pkg_dir} ] ; then echo "$package binary already exists, skipped" echo "(remove ./binaries/$bin_dir/${pkg_dir} to recreate it)" exit 0 else # does it exist? if [ ! -f $hdw_build_dir/var/adm/flists/$package ] ; then echo "package not build (moved flist file?)" exit 0 else echo "creating binary tarball of $package" mkdir -p $hdw_home_dir/binaries/$bin_dir/${pkg_dir} && cd $hdw_build_dir && # which files do we need? fl_file="var/adm/flists/$package" cat $fl_file | awk '{ print $2 }' | \ tar --no-recursion --use-compress-program=bzip2 \ -cf $hdw_home_dir/binaries/$bin_dir/${pkg_dir}/$tar_name.tar.bz2 \ -T - cp $hdw_build_dir/var/adm/flists/$package \ $hdw_home_dir/binaries/$bin_dir/${pkg_dir} cd $hdw_home_dir echo "done" fi fi elif [ "$package" = "all" ] ; then ((counter=0)) for pkg in `ls -A $hdw_build_dir/var/adm/flists | grep -v '.stage'`; do tar_name=`echo $pkg | sed "s/-[0-9].*//g"` ./scripts/Create-Binary -package $pkg -root $hdw_build_dir \ -tar-name $tar_name ((counter+=1)) done # add 00-dirtree, build in stage1 ./scripts/Create-Binary -package 00-dirtree.stage0-0 -tar-name 00-dirtree \ -root $hdw_build_dir ((counter+=1)) echo "created $counter binaries, done" fi