while getopts :r:p:b: OPT; do case $OPT in r|+r) REPO="$OPTARG" ;; p|+p) PACKAGE="$OPTARG" ;; b|+b) BRANCH="$OPTARG" ;; *) echo "usage: ${0##*/} [+-p ARG] [+-b ARG} [--] ARGS..." exit 2 esac done shift $(( OPTIND - 1 )) OPTIND=1 if [ ! $PACKAGE ] then echo "Please set a package with -p" exit 1 fi if [ ! $REPO ] then echo "Please set a repository with -r" exit 1 fi if [ ! $BRANCH ] then echo "Please set a branch with -b" exit 1 fi echo "==================" echo "Running Package CI" echo "------------------" echo "package=$PACKAGE" echo "repo=$REPO" echo "branch=$BRANCH" echo "==================" set -e -v TMP=`mktemp -t -d guix-package-ci.bash.XXXXXX` cd $TMP git clone $REPO cd guix git checkout $BRANCH guix shell --pure -m manifest.scm -- bash patch-checklist.bash -p $PACKAGE trap "rm -rf $TMP* 2>EXIT" 0