OSX compatibility
[m6w6/btr] / share / btr / common.sh
diff --git a/share/btr/common.sh b/share/btr/common.sh
deleted file mode 100755 (executable)
index 88f522e..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-#!/bin/bash
-
-export BTR_DATE=$(date +%Y%m%d%H%M%S)
-export BTR_CPUS=${CPUS:-$(nproc)}
-export BTR_PROG=$(basename "$0")
-export BTR_QUIET=false
-export BTR_VERBOSE=false
-export BTR_FORCEYES=false
-
-function error {
-       echo "$@" >&2
-       exit 1
-}
-export -f error
-
-function btr-banner {
-       echo "$BTR_PROG v0.4.0, (c) Michael Wallner <mike@php.net>"
-       if test "$BTR_BANNER"
-       then
-               echo "$BTR_BANNER"
-       fi
-}
-export -f btr-banner
-
-function btr-confirm {
-       local CONTINUE
-       if ! $BTR_FORCEYES
-       then
-               echo
-               echo -n "$1 (y/N) "
-               read -r CONTINUE
-               case $CONTINUE in
-                       y*|Y*)
-                               echo
-                               ;;
-                       *)
-                               exit -1
-                               ;;
-               esac
-       fi
-}
-export -f btr-confirm
-
-function btr-setup-rundir {
-       local default_rundir="${1:-/tmp/btr}"
-       
-       if test -z "$BTR_RUNDIR"
-       then
-               export BTR_RUNDIR="$default_rundir"
-       else
-               export BTR_RUNDIR=$(realpath "$BTR_RUNDIR")
-       fi
-       
-       mkdir -p "$BTR_RUNDIR" || error "Could not create directory '$BTR_RUNDIR'"
-}
-export -f btr-setup-rundir
-
-function btr-setup-verbosity {
-       local for_make=${1:-false}
-       
-       if ${BTR_VERBOSE:-false}
-       then
-               BTR_QUIET_FLAG=
-               BTR_SILENT_FLAG=
-               BTR_VERBOSE_FLAG="-v"
-               SAY="echo; echo"
-       elif $BTR_QUIET
-       then
-               BTR_QUIET_FLAG="-q"
-               BTR_SILENT_FLAG="-s"
-               BTR_VERBOSE_FLAG=
-               SAY="true"
-       else
-               BTR_QUIET_FLAG=
-               BTR_SILENT_FLAG="-s"
-               BTR_VERBOSE_FLAG=
-               SAY="echo"
-       fi
-       
-       if $for_make
-       then
-               SAY="@$SAY"
-       fi
-       
-       export BTR_QUIET BTR_VERBOSE BTR_FORCEYES BTR_QUIET_FLAG BTR_SILENT_FLAG BTR_VERBOSE_FLAG SAY
-}
-export -f btr-setup-verbosity
-
-function btr-shortoptions {
-       (
-               local f
-               local e
-               
-               for f in common $BTR_PROG
-               do
-                       for e in flags opts
-                       do
-                               test -e "$BTR_LIBDIR/$f.$e" && cut -sf1 <"$BTR_LIBDIR/$f.$e"
-                       done
-               done
-       ) | xargs | tr -d " "
-}
-export -f btr-shortoptions
-
-function btr-longoptions {
-       (
-               local f
-               local e
-               
-               for f in common $BTR_PROG
-               do
-                       for e in flags opts
-                       do
-                               test -e "$BTR_LIBDIR/$f.$e" && cut -sf2 <"$BTR_LIBDIR/$f.$e"
-                       done
-               done
-       )  | sed -r -e 's/(:+).*/\1/' | xargs | tr " " ","
-}
-export -f btr-longoptions
-
-function btr-flags {
-       (
-               local f
-               local e
-               
-               for f in common $BTR_PROG
-               do
-                       test -e "$BTR_LIBDIR/$f.flags" && cut -sf1 <"$BTR_LIBDIR/$f.flags"
-               done
-       ) | xargs | tr -d " "
-}
-export -f btr-flags
-
-function btr-help-options {
-       local f o=$(
-               for f in common $BTR_PROG
-               do
-                       test -e "$BTR_LIBDIR/$f.$1" && "$BTR_LIBDIR/opt.awk" <"$BTR_LIBDIR/$f.$1"
-               done
-       )
-       if test "$o"
-       then
-               echo
-               case "$1" in
-               flags)
-                       echo "  Flags:"
-                       ;;
-               opts)
-                       echo "  Options:"
-                       ;;
-               esac
-               echo "$o"
-       fi
-}
-export -f btr-help-options
-
-function btr-help-args {
-       local a d l
-       
-       if test -e "$BTR_LIBDIR/$BTR_PROG.args"
-       then
-               echo
-               echo "  Arguments:"
-               while read a d
-               do
-                       printf "%b\n" "$d" | fold -sw46 | while read l
-                       do
-                               printf "    %-16s %s\n" "$a" "$l"
-                               a=
-                       done
-                       echo
-               done <"$BTR_LIBDIR/$BTR_PROG.args"
-       fi
-}
-export -f btr-help-args
-
-function btr-args {
-       if test -e "$BTR_LIBDIR/$BTR_PROG.args"
-       then
-               cut -sf1 <"$BTR_LIBDIR/$BTR_PROG.args" | xargs
-       fi
-}
-export -f btr-args
-
-function btr-help {
-       echo
-       echo "Usage: $BTR_PROG [-$(btr-flags)] [<options>]" $(btr-args)
-       btr-help-options flags
-       btr-help-options opts
-       btr-help-args
-       if test $BTR_PROG != "btrc"
-       then
-       echo
-       echo "  Rules format:"
-       echo "    type=arg  e.g: notify-send=\"-u low\""
-       echo "                   mail=\"-c copy@to rcpt@to\""
-       echo "                   irc=\"tcp://btr@chat.freenode.org/#btr\""
-       echo "                   git=\$HOME/src/btr.git"
-       echo
-       echo "    Note though, that some rules do not use any argument."
-       echo
-       echo "  Rulesets:"
-       for ruleset in source build report
-       do
-               printf "    %10s: %s\n" $ruleset \
-                       "$(find "$BTR_LIBDIR/$ruleset" -name '*.mk' -exec basename {} .mk \; | sort | xargs)"
-       done
-       echo
-       fi
-       exit
-}
-export -f btr-help
-
-function btr-parseopts {
-       local shortoptions="$(btr-shortoptions common btr-flags btr-options)"
-       local longoptions="$(btr-longoptions common btr-flags btr-options)"
-       local options
-       
-       options=$(getopt \
-               --name $BTR_PROG \
-               --options "$shortoptions" \
-               --longoptions "$longoptions" \
-               -- "$@" \
-       )
-       if test $? -ne 0
-       then
-               btr-help
-       fi
-       
-       eval set -- "$options"
-       
-       while test $# -gt 0
-       do
-               case "$1" in
-                       -h|--help)
-                               btr-banner
-                               btr-help
-                               ;;
-                       -v|--verbose)
-                               BTR_QUIET=false
-                               BTR_VERBOSE=true
-                               ;;
-                       -q|--quiet)
-                               BTR_QUIET=true
-                               BTR_VERBOSE=false
-                               ;;
-                       -y|--yes)
-                               BTR_FORCEYES=true
-                               ;;
-                       -c|--clean)
-                               BTR_BUILD_CLEAN=true
-                               ;;
-                       -C|--vcsclean)
-                               BTR_SOURCE_CLEAN=true
-                               ;;
-                       ####
-                       -f|--config)
-                               source "$2"
-                               shift
-                               ;;
-                       ####
-                       -B|--branch)
-                               BTR_BRANCH="$2"
-                               shift
-                               ;;
-                       -D|--directory)
-                               BTR_RUNDIR="$2"
-                               shift
-                               ;;
-                       -S|--suffix)
-                               BTR_SUFFIX="$2"
-                               shift
-                               ;;
-                       -T|--test)
-                               BTR_TEST_ARGS="$2"
-                               shift
-                               ;;
-                       ####
-                       -s|--source)
-                               case "$2" in
-                               git*)
-                                       test -z "$BTR_BRANCH" && BTR_BRANCH=master
-                                       ;;
-                               svn*)
-                                       test -z "$BTR_BRANCH" && BTR_BRANCH=trunk
-                                       ;;
-                               cvs*)
-                                       test -z "$BTR_BRANCH" && BTR_BRANCH=HEAD
-                                       ;;
-                               esac
-                               BTR_SOURCE_RULES="$(cut -d= -f1 <<<$2)"
-                               BTR_SOURCE_ARGS="$(cut -s -d= -f2- <<<$2)"
-                               shift
-                               ;;
-                       -b|--build)
-                               BTR_BUILD_RULES="$(cut -d= -f1 <<<$2)"
-                               BTR_BUILD_ARGS="$(cut -s -d= -f2- <<<$2)"
-                               shift
-                               ;;
-                       -r|--report)
-                               BTR_REPORT_RULES="$(cut -d= -f1 <<<$2)"
-                               BTR_REPORT_ARGS="$(cut -s -d= -f2- <<<$2)"
-                               shift
-                               ;;
-                       ####
-                       --)
-                               shift
-                               BTR_EXTRA_ARGS="$@"
-                               break
-                               ;;
-               esac
-               shift
-       done
-}
-export -f btr-parseopts
-
-function btr-conf-dump {
-       echo "BTR_QUIET='$BTR_QUIET'"
-       echo "BTR_VERBOSE='$BTR_VEROSE'"
-       echo "BTR_FORCEYES='$BTR_FORCEYES'"
-       echo "BTR_BRANCH='$BTR_BRANCH'"
-       echo "BTR_SUFFIX='$BTR_SUFFIX'"
-       echo "BTR_RUNDIR='$BTR_RUNDIR'"
-       echo "BTR_SOURCE_RULES='$BTR_SOURCE_RULES'"
-       test ${BTR_SOURCE_ARGS+defined} && echo "BTR_SOURCE_ARGS='$BTR_SOURCE_ARGS'"
-       test ${BTR_SOURC_CLEAN+defined} && echo "BTR_SOURCE_CLEAN='$BTR_SOURCE_CLEAN'"
-       echo "BTR_BUILD_RULES='$BTR_BUILD_RULES'"
-       test ${BTR_BUILD_ARGS+defined}  && echo "BTR_BUILD_ARGS='$BTR_BUILD_ARGS'"
-       test ${BTR_BUILD_CLEAN+defined} && echo "BTR_BUILD_CLEAN='$BTR_BUILD_CLEAN'"
-       test ${BTR_TEST_ARGS+defined}   && echo "BTR_TEST_ARGS='$BTR_TEST_ARGS'"
-       echo "BTR_REPORT_RULES='$BTR_REPORT_RULES'"
-       test ${BTR_REPORT_ARGS+defined} && echo "BTR_REPORT_ARGS='$BTR_REPORT_ARGS'"
-}
-export -f btr-conf-dump
-
-# vim: noet