From: Thierry Parmentelat Date: Mon, 14 Mar 2011 15:20:50 +0000 (+0100) Subject: can grab tags from a build-dir/tags-file, or use the ones provided on X-Git-Tag: sface-0.1-6~1 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=3dd195d09ecb9fed27e65d93cd77596c11977c0f;ds=inline can grab tags from a build-dir/tags-file, or use the ones provided on the command line --- diff --git a/macos/build-dmg.sh b/macos/build-dmg.sh index b901ef0..a861e86 100755 --- a/macos/build-dmg.sh +++ b/macos/build-dmg.sh @@ -7,9 +7,9 @@ # we leverage the first similar packaging initially made by Baris Metin # # REQUIREMENTS -# sface-skel.dmg is the skeleton that has Qt and all the other third-party software +# sface-skel-snow-leopard.dmg is the skeleton that has Qt and all the other third-party software # it is expected to be found in the local directory -# should be made available on http://mirror.onelab.eu/third-party/ as well +# otherwise it gets fetched at http://mirror.onelab.eu/third-party/ # the script expects the taglevels for both sfa and sface, # in order to retrieve the corresponding code and to label the resulting package properly # @@ -17,10 +17,6 @@ # the place to search for the skeleton SKEL_REPO=http://mirror.onelab.eu/third-party -sfa_GITPATH=git://git.onelab.eu/sfa.git@sfa-1.0-20 -sface_GITPATH=git://git.onelab.eu/sface.git@sface-0.1-5 -sface_GITPATH=git://git.onelab.eu/sface.git@master - # hard-wired for snow-leopard for now arch=snow-leopard @@ -53,12 +49,14 @@ function git_retrieve () { giturl=$(git_url $gitpath) gittag=$(git_tag $gitpath) - if [ -z "$filemode"] ; then + if [ -z "$filemode" ] ; then [ -d $dest ] || mkdir -p $dest - pushd $dest >& /dev/null + pushd $dest git archive --remote=${giturl} ${gittag} | tar -xf - ${path} popd else + destdir=$(dirname $dest) + [ -d $destdir ] || mkdir -p $destdir git archive --remote=${giturl} ${gittag} | tar -xOf - ${path} > ${dest} fi } @@ -68,7 +66,11 @@ function die () { exit 1 } -function main () { +function package () { + + sface_GITPATH=$1; shift + sfa_GITPATH=$1; shift + skel_name=sface-skel-${arch} skel_dmg=./${skel_name}.dmg skel_mnt=/Volumes/${skel_name} @@ -109,7 +111,7 @@ Also make sure to trash the current one before retrying" hdiutil attach -readwrite -mount required $img_raw_dmg # copy skeleton as-is - tar -C $skel_mnt -cf - . | tar -C $img_mnt -xf - + tar -C $skel_mnt --exclude .Trashes -cf - . | tar -C $img_mnt -xf - # places relative to mount point app=sface.app resource_path=$app/Contents/Resources @@ -135,8 +137,10 @@ Also make sure to trash the current one before retrying" find $img_mnt -name '*pyc' | xargs rm -f find $img_mnt -name '*~' | xargs rm -f - echo "Please open $img_mnt under Finder ..." - read _ + if [ -n "$INTERACTIVE" ] ; then + echo "Please open $img_mnt under Finder ..." + read _ + fi hdiutil detach $img_mnt rm -f $img_dmg @@ -145,6 +149,54 @@ Also make sure to trash the current one before retrying" rm -f $img_raw_dmg # unmount the skeleton hdiutil unmount $skel_mnt + +} + +######################################## +# either provide a build dir and tags file +# or sface-GITPATH sfa-GITPATH +function usage () { + echo "$COMMAND -b -t " + echo " or" + echo "$COMMAND -c -s " + echo "" + echo "Common options" + echo " -n : dry-run" + echo " -i : let you open the image before getting wrapped" + echo " -h : this help" +} + +DEFAULT_BUILD_DIR=$HOME/git/build +DEFAULT_TAGS_FILE=onelab-k32-tags.mk + +function main () { + while getopts "b:t:c:s:hni" opt ; do + case $opt in + b) BUILD_DIR=$OPTARG;; + t) TAGS_FILE=$OPTARG;; + c) sface_GITPATH=$OPTARG;; + s) sfa_GITPATH=$OPTARG;; + n) dry_run=true;; + i) INTERACTIVE=true;; + h) usage; exit 1 ;; + esac + done + shift $(($OPTIND - 1)) + + [ -z "$BUILD_DIR" ] && BUILD_DIR=$DEFAULT_BUILD_DIR + [ -z "$TAGS_FILE" ] && TAGS_FILE=$DEFAULT_TAGS_FILE + if [ -z "$sface_GITPATH" ] ; then + sface_GITPATH=$(make -C $BUILD_DIR stage1=true PLDISTROTAGS=$TAGS_FILE +sface-GITPATH 2> /dev/null) + echo "Retrieved from $BUILD_DIR/$TAGS_FILE.." + echo " sface_GITPATH=$sface_GITPATH" + fi + if [ -z "$sfa_GITPATH" ] ; then + sfa_GITPATH=$(make -C $BUILD_DIR stage1=true PLDISTROTAGS=$TAGS_FILE +sfa-GITPATH 2> /dev/null) + echo "Retrieved from $BUILD_DIR/$TAGS_FILE.." + echo " sfa_GITPATH=$sfa_GITPATH" + fi + [ -z "$dry_run" ] && package "$@" $sface_GITPATH $sfa_GITPATH + } main "$@"