Annotation of embedaddon/rsync/packaging/prep-auto-dir, revision 1.1.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>