Enterprise-Onion-Toolkit/eotk

130 wiersze
2.3 KiB
Bash
Executable File

#!/bin/sh
# Enterprise Onion Toolkit
cd `dirname $0` || exit 1
export EOTK_HOME=`pwd` # expected by tools
# set project directory; this path is hard-replicated elsewhere
project_dir=$EOTK_HOME/projects.d
# set path
export PATH=$EOTK_HOME/opt.d:$EOTK_HOME/lib.d:$PATH
# meta
prog=`basename $0`
version=1.2
Warn() {
echo "$@" 1>&2
}
AllProjects() {
(
cd $project_dir
for d in *.d/ ; do
echo `basename $d .d`
done
)
}
Action() {
action=$1
shift
verbose=false
if [ "x$1" = "x" ] ; then
Warn "missing project name, try: '$prog projects' for a list, or '-a' for all"
return
elif [ "x$1" = "x-a" ] ; then
projects=`AllProjects`
verbose=true
else
projects="$*"
fi
for project in $projects ; do
$verbose && echo :::: $project ::::
sh $project_dir/$project.d/$action.sh
done
}
cmd="$1"
shift
case "$cmd" in
version)
echo $prog $version $EOTK_HOME
if [ -f .gitignore ] ; then
git show -s --oneline
fi
;;
projects|proj)
AllProjects
;;
configure|config|conf)
log=configure$$.log
if ! $EOTK_HOME/lib.d/do-configure.pl "$@" 2>$log ; then
echo $prog: failure: see $log
exit 1
else
echo done
fi
;;
start) # project, or "-a"
Action start "$@"
;;
stop) # project, or "-a"
Action stop "$@"
;;
bounce|restart|reload) # project, or "-a"
Action bounce "$@"
;;
debugon) # project, or "-a"
Action debugon "$@"
;;
debugoff) # project, or "-a"
Action debugoff "$@"
;;
harvest|onions) # project, or "-a"
Action harvest "$@"
;;
status) # project, or "-a"
Action status "$@"
;;
maps|map) # project, or "-a"
Action maps "$@"
;;
ps)
ps auxww | grep /eotk/
;;
genkey|gen)
secrets=secrets.d
test -d $secrets || mkdir $secrets || exit 1
( cd $secrets ; generate-onion-key.sh )
;;
delete) # project, or "-a"
echo delete is tbd
;;
*)
echo "usage: $prog args ... # see README.md for docs" 1>&2
exit 1
;;
esac
exit 0