Annotation of embedaddon/rsync/packaging/prep-auto-dir, revision 1.1
1.1 ! misho 1: #!/bin/sh -e
! 2:
! 3: # This script will setup the build dir based on the current git branch and the
! 4: # directory auto-build-save/$BRANCH. We don't use a symlink for the build dir
! 5: # because we want to maximize the ccache reuse, so all builds must happen in
! 6: # the same real dir. When a dir is moved out of auto-build-save/$BRANCH to the
! 7: # build dir, it is replaced with a symlink so that it can still be found under
! 8: # that dir. The build dir also gets a .branch -> $BRANCH symlink so that we
! 9: # can figure out the current build dir's branch.
! 10:
! 11: # To get started, just clone the rsync git repo and create the auto-build-save
! 12: # dir. If you have an existing git checkout and it is not in a pristine state,
! 13: # run "make distclean" before creating the auto-build-save dir.
! 14:
! 15: auto_top='auto-build-save'
! 16: if test -d $auto_top -a -d .git; then
! 17: desired_branch=`git rev-parse --abbrev-ref HEAD | tr / %`
! 18: if test "$desired_branch" = HEAD; then
! 19: echo "ERROR: switch to the right build dir manually when in detached HEAD mode." 1>&2
! 20: exit 1
! 21: fi
! 22: auto_dir="$auto_top/$desired_branch"
! 23: if test -d build; then
! 24: cur_branch=`readlink build/.branch`
! 25: else
! 26: cur_branch='/'
! 27: fi
! 28: if test "$desired_branch" != "$cur_branch"; then
! 29: if test "$cur_branch" != /; then
! 30: rm -f "$auto_top/$cur_branch"
! 31: mv build "$auto_top/$cur_branch"
! 32: fi
! 33: test -d "$auto_dir" || mkdir "$auto_dir"
! 34: test -h "$auto_dir/.branch" || ln -s "$desired_branch" "$auto_dir/.branch"
! 35: mv "$auto_dir" build
! 36: ln -s ../build "$auto_dir"
! 37: fi
! 38: if test ! -h Makefile; then
! 39: rm -f Makefile
! 40: ln -s packaging/auto-Makefile Makefile
! 41: fi
! 42: echo $desired_branch
! 43: fi
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>