X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=test_usage.sh;h=9b7dafeadb97d7618701ce3196cbc433ef5f0efc;hb=a37b396a4f7e44f82f04fb73efc7e3cc8dd56690;hp=c751d283cb9ae5f9fa715fa9929a1b842bf2cc42;hpb=2b071a28a2cedab54c713948c6b6f4bd27bb45e2;p=be.git diff --git a/test_usage.sh b/test_usage.sh index c751d28..9b7dafe 100755 --- a/test_usage.sh +++ b/test_usage.sh @@ -4,74 +4,151 @@ # features work, and gives an example of suggested usage to get people # started. # -# usage: test_usage.sh RCS -# where RCS is one of: -# bzr -# git +# usage: test_usage.sh VCS +# where VCS is one of: +# bzr, git, hg, arch, none +# +# Note that this script uses the *installed* version of be, not the +# one in your working tree. -set -e # exit imediately on failed command +set -e # exit immediately on failed command set -o pipefail # pipes fail if any stage fails set -v # verbose, echo commands to stdout exec 6>&2 # save stderr to file descriptor 6 exec 2>&1 # fd 2 now writes to stdout -if [ $# -ne 1 ] +if [ $# -gt 1 ] then - echo "usage: test_usage.sh RCS" + echo "usage: test_usage.sh [VCS]" echo "" - echo "where RCS is one of" - for RCS in bzr git + echo "where VCS is one of" + for VCS in arch bzr darcs git hg none do - echo " $RCS" + echo " $VCS" done exit 1 +elif [ $# -eq 0 ] +then + for VCS in arch bzr darcs git hg none + do + echo -e "\n\nTesting $VCS\n\n" + $0 "$VCS" || exit 1 + done + exit 0 fi -RCS="$1" +VCS="$1" TESTDIR=`mktemp -d /tmp/BEtest.XXXXXXXXXX` cd $TESTDIR -if [ "$RCS" == "bzr" ] +# Initialize the VCS repository +if [ "$VCS" == "arch" ] +then + ID=`tla my-id` + ARCH_PARAM_DIR="$HOME/.arch-params" + ARCH_ARCHIVE_ROOT=`mktemp -d /tmp/BEtest.XXXXXXXXXX` + UNIQUE=`echo "$ARCH_ARCHIVE_ROOT" | sed 's/\/tmp\/BEtest.//;s/[0-9]//g'` + ARCH_ARCHIVE="j@x.com--BE-test-usage-$UNIQUE" + ARCH_PROJECT="BE-test-usage--twig--99.5" + ARCH_ARCHIVE_DIR="$ARCH_ARCHIVE_ROOT/$ARCH_PROJECT" + echo "tla make-archive $ARCH_ARCHIVE $ARCH_ARCHIVE_DIR" + tla make-archive $ARCH_ARCHIVE $ARCH_ARCHIVE_DIR + echo "tla archive-setup -A $ARCH_ARCHIVE $ARCH_PROJECT" + tla archive-setup -A $ARCH_ARCHIVE $ARCH_PROJECT + echo "tla init-tree -A $ARCH_ARCHIVE $ARCH_PROJECT" + tla init-tree -A $ARCH_ARCHIVE $ARCH_PROJECT + echo "Adjusing the naming conventions to allow .files" + sed -i 's/^source .*/source ^[._=a-zA-X0-9].*$/' '{arch}/=tagging-method' + echo "tla import -A $ARCH_ARCHIVE --summary 'Began versioning'" + tla import -A $ARCH_ARCHIVE --summary 'Began versioning' +elif [ "$VCS" == "bzr" ] then ID=`bzr whoami` bzr init -elif [ "$RCS" == "git" ] +elif [ "$VCS" == "darcs" ] +then + if [ -z "$DARCS_EMAIL" ]; then + export DARCS_EMAIL="J. Doe " + fi + ID="$DARCS_EMAIL" + darcs init +elif [ "$VCS" == "git" ] then - NAME=`git-config user.name` - EMAIL=`git-config user.email` + NAME=`git config user.name` + EMAIL=`git config user.email` ID="$NAME <$EMAIL>" git init +elif [ "$VCS" == "hg" ] +then + ID=`hg showconfig ui.username` + hg init +elif [ "$VCS" == "none" ] +then + ID=`id -nu` else - echo "Unrecognized RCS $RCS" + echo "Unrecognized VCS '$VCS'" exit 1 fi + +if [ -z "$ID" ] +then # set a default ID for VCSs that aren't tracking one yet. + ID="John Doe " +fi echo "I am '$ID'" -be set-root . -OUT=`be new 'having too much fun'` +be init # initialize the Bugs Everywhere repository +OUT=`be new 'having too much fun'` # create a new bug echo "$OUT" BUG=`echo "$OUT" | sed -n 's/Created bug with ID //p'` echo "Working with bug: $BUG" be comment $BUG "This is an argument" -be comment $BUG:1 "No it isn't" # comment on the first comment +#be set user_id "$ID" # get tired of guessing user id for none VCS +be set # show settings +be comment $BUG/ "No it isn't" # comment on the first comment be show $BUG # show details on a given bug -be close $BUG # set bug status to 'closed' +be status closed $BUG # set bug status to 'closed' be comment $BUG "It's closed, but I can still comment." -be open $BUG # set bug status to 'open' +if [ "$VCS" != 'none' ]; then + be commit 'Initial commit' +fi +be status open $BUG # set bug status to 'open' be comment $BUG "Reopend, comment again" -be status $BUG fixed # set bug status to 'fixed' -be show $BUG # show bug details & comments +be status fixed $BUG # set bug status to 'fixed' be list # list all open bugs be list --status fixed # list all fixed bugs -be assign $BUG # assign the bug to yourself -be list -m -s fixed # see fixed bugs assigned to you -be assign $BUG 'Joe' # assign the bug to Joe -be list -a Joe -s fixed # list the fixed bugs assigned to Joe -be assign $BUG none # assign the bug to noone +be assign - $BUG # assign the bug to yourself +be list -m --status fixed # see fixed bugs assigned to you +be assign 'Joe' $BUG # assign the bug to Joe +be list -a Joe --status fixed # list the fixed bugs assigned to Joe +be assign none $BUG # un-assign the bug +if [ "$VCS" != 'none' ]; then + be diff # see what has changed +fi +OUT=`be new 'also having too much fun'` +BUGB=`echo "$OUT" | sed -n 's/Created bug with ID //p'` +be comment $BUGB "Blissfully unaware of a similar bug" +be merge $BUG $BUGB # join BUGB to BUG +be --no-pager show $BUG # show bug details & comments +# you can also export/import XML bugs/comments +OUT=`be new 'yet more fun'` +BUGC=`echo "$OUT" | sed -n 's/Created bug with ID //p'` +be comment $BUGC "The ants go marching..." +be show --xml $BUGC/ | be import-xml --add-only --comment-root $BUG - be remove $BUG # decide that you don't like that bug after all +be commit "You can even commit using BE" +be commit --allow-empty "And you can add empty commits if you like" +be commit "But this will fail" || echo "Failed" + cd / rm -rf $TESTDIR +if [ "$VCS" == "arch" ] +then + # Cleanup everything outside of TESTDIR + rm -rf "$ARCH_ARCHIVE_ROOT" + rm -rf "$ARCH_PARAM_DIR/=locations/$ARCH_ARCHIVE" +fi + exec 2>&6 6>&- # restore stderr and close fd 6