You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/bin/sh
pgm="${0##*/}" what="${1:-usage}" # vim: syntax=sh # echo "--- # $pgm"
if [ "x$what" = 'xusage' ]; then cat <<EOT # welcome to toychain a simple educational blockchain
available commands:
$pgm init \$name # to initialize \$name node $pgm config \$name # to change configuration to this \$name node $pgm start \$name # to start a local \$name node $pgm stop \$name # to stop a \$name node $pgm restart \$name # to restart a \$name node $pgm sync \$name # to synchronize a \$name node $pgm update \$tag # to synchronize a \$tag node $pgm test \$tc # to run the \$tc test case $pgm debug \$cmd # to running \$cmd in debug mode $pgm install # to install dependant libraries essentially CPAN perl modules $pgm ship # to package and ship libraries (i.e. push to holo-git)
EOT
fi
main() { case $what in init) tcinitialize $2;; version) tcversion;; config) tcconfigure $@;; start) tcstart $2;; stop) tcstop $2;; stop) tcstop $2;; update) tcupdate $@;; test) tctest $@;; debug) tcdebug $@;; support) echo "do you need help with $pgm ?\n- call our support line at https://www.drit.ml\n-- Dr I·T";; install) tcinstall $@;; ship) tcship $@;; log) tclog;; *) tcrun $@;; esac
}
tcinitialize() { echo "$pgm: initializing ..." echo "---" }
tcconfigure() { echo "$pgm: configure ..." echo "---" }
tcstart() { echo "$pgm: starting daemon ..." perl -S apirun.pl echo "---" }
tcstop() { echo "$pgm: stopping daemon ..." echo "---" }
tcsync() { echo "$pgm: synchronizing daemon ..." echo "---" }
tcupdate() { shift; tag=$2 echo "$pgm: updating daemon with tag $tag..." top=$(git rev-parse --show-toplevel) date +%s >> transcript.log echo // updating $top >> transcript.log git pull --ff-only --recurse-submodules=yes origin master 2>&1 | tee -a transcript.log echo // checking out $tag git checkout $tag 2>&1 | tee -a transcript.log git log -1 cd $top/lib echo // updating $top/lib git pull --ff-only origin master 2>&1 | tee -a transcript.log echo . >> transcript.log git log -1 echo "---" }
tclog() { echo "$pgm: transcript log" tail -f transctip.log echo "---" }
tctest() { tc="$2" echo "$pgm: running $1 $tc" echo "---" }
tcrun() { cmd="$@" echo "$pgm: running $cmd" $cmd echo "..." }
tcdebug() { shift; cmd="$@" echo "$pgm: running $cmd in debug mode..." echo "---" }
tcinstall() { echo "$pgm: installing dependancies ..." echo "---" }
tcversion() { top=$(git rev-parse --show-toplevel) gitid0=$(git rev-parse --short HEAD) date +%s >> transcript.log git pull --ff-only --recurse-submodules=yes origin master 1>> transcript.log 2>&1 git checkout $tag 1>> transcript.log 2>&1 gitid1=$(git rev-parse --short HEAD) if [ "x$gitid0" != "x$gitid1" ]; then gitid1=$gitid0-$gitid1; fi cd $top/lib git pull --ff-only origin master 1>> transcript.log 2>&1 gitid2=$(git rev-parse --short HEAD) echo Version: $gitid1-$gitid2 echo Version: $gitid1-$gitid2 >> transcript.log echo . >> transcript.log
}
tcship() { # only for internal use (i.e. Dr I·T) date=$(date) top=$(git rev-parse --show-toplevel) cd $top/lib gituser git commit -a -m "snapshot $date" if which holo-git-push 2> /dev/null; then holo-git-push else git push origin master fi gitid=$(git rev-parse --short HEAD) cd $top gituser git commit -a -m "library update ($gitid) on $date" git push origin master git push keybase master git push toptal master }
main $@; exit $?; true; # $Source: /my/shell/scripts/toychain.sh $
|