#!/bin/bash ## ## Arching Kaos CLI tool is the main executable script to use for exploring, ## creating and distributing local blockchain(s) called zchain(s). ## ## It is accompanied with several utilities that help to create new blocks, ## reference them, export blocks to HTML pages, "roll-back" your zchain to an ## older block, reset your zchain and more. ## ## -h, --help Prints this help message ## ## Run with no arguments to see available commands ## fullprogrampath="$(realpath $0)" PROGRAM="$(basename $0)" descriptionString="Arching Kaos CLI" source $HOME/.arching-kaos/rc source $AK_LIBDIR/_ak_log source $AK_LIBDIR/_ak_script if [ $# -eq 0 ] then _ak_log_warning "No command given" ( find $AK_BINDIR | grep 'ak-' | while read available do #subcmd="$(basename $available | cut -d '-' -f 2)" subcmd="$(basename $available)" args="-h" if [ -n "$subcmd" ] then echo $subcmd | cut -d '-' -f 2 | sort | uniq | sed -e 's/^/ak /g' #$(echo $subcmd) $args fi done ) | sort | uniq exit 1 fi if [ $# -eq 1 ] then case "$1" in -h|--help) _ak_usage exit 1 ;; esac fi if [ ! -n "$(echo -n $1 | sed 's/[0-9]//g')" ] && [ "$(( $(echo -n $1 | xxd -p) - 2100))" == "1337" ] then AK_DEBUG="no" echo -n efb8bbe294b3e383863de4b880 | xxd -r -p fi subcmd="$(echo $* | sed -e 's/ /-/g')" # Add functionality for separate modules directory case "$1" in -m|--module) shift subcmd="$AK_MODULESDIR/$(echo $1 | sed -e 's/ /-/g')" shift if [ ! -n $1 ] then _ak_log_error "No module selected" ls -1 $AK_MODULESDIR exit 1 fi subargs="$*" if [ ! -n $subargs ] then subargs="--help" fi if [ ! -f $subcmd/main.sh ] then _ak_log_error "No $(basename $subcmd) module" exit 1 fi $subcmd/main.sh $subargs _ak_exit_program $? "$subcmd module finished"; ;; esac if [ -f "$AK_BINDIR/ak-$subcmd" ] then $(echo ak-$subcmd) _ak_exit_program $? "ak-$subcmd command finished"; else argc=$# argv="$*" counter=1 while [ $counter -lt $argc ] do subcmd="$(echo $argv | cut -d ' ' -f -$counter | sed -e 's/ /\-/g')" args="$(echo "$argv"| cut -d ' ' -f $(($counter + 1))-)" if [ -n "$subcmd" ] && [ -f "$AK_BINDIR/ak-$subcmd" ] then _ak_log_info "Running: ak-$subcmd with args: $args" $(echo ak-$subcmd) $args _ak_exit_program $? "ak-$subcmd command finished"; fi counter=$(($counter + 1)) done find $AK_BINDIR | while read available do echo $(basename $available) |\ grep ak-$(echo $argv | cut -d ' ' -f 1) |\ sed -e 's/-/ /g' done _ak_log_error "Unknown subcommand: $*" exit 1 fi