diff options
-rwxr-xr-x | bin/ak-sh | 45 | ||||
-rwxr-xr-x | lib/_ak_sh | 65 |
2 files changed, 110 insertions, 0 deletions
diff --git a/bin/ak-sh b/bin/ak-sh new file mode 100755 index 0000000..730c83b --- /dev/null +++ b/bin/ak-sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +### +### arching-kaos-tools +### Tools to interact and build an Arching Kaos Infochain +### Copyright (C) 2021 - 2025 kaotisk +### +### This program is free software: you can redistribute it and/or modify +### it under the terms of the GNU General Public License as published by +### the Free Software Foundation, either version 3 of the License, or +### (at your option) any later version. +### +### This program is distributed in the hope that it will be useful, +### but WITHOUT ANY WARRANTY; without even the implied warranty of +### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +### GNU General Public License for more details. +### +### You should have received a copy of the GNU General Public License +### along with this program. If not, see <http://www.gnu.org/licenses/>. +### +## Arching Kaos Interactive Shell +## +## Usage: +## ak-sh +## +## -h, --help Prints this help message +## -s, --shell Launched an interactive shell +## +fullprogrampath="$(realpath $0)" +PROGRAM=$(basename $0) +descriptionString="Arching Kaos Shell" + +source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_script +source $AK_LIBDIR/_ak_sh + +if [ ! -z $1 ] +then + case $1 in + -h | --help) _ak_usage; exit;; + -s | --shell) _ak_shell; exit;; + * ) _ak_usage;; + esac +else + _ak_usage +fi diff --git a/lib/_ak_sh b/lib/_ak_sh new file mode 100755 index 0000000..a1cf60f --- /dev/null +++ b/lib/_ak_sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +### +### arching-kaos-tools +### Tools to interact and build an Arching Kaos Infochain +### Copyright (C) 2021 - 2025 kaotisk +### +### This program is free software: you can redistribute it and/or modify +### it under the terms of the GNU General Public License as published by +### the Free Software Foundation, either version 3 of the License, or +### (at your option) any later version. +### +### This program is distributed in the hope that it will be useful, +### but WITHOUT ANY WARRANTY; without even the implied warranty of +### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +### GNU General Public License for more details. +### +### You should have received a copy of the GNU General Public License +### along with this program. If not, see <http://www.gnu.org/licenses/>. +### + +source $AK_LIBDIR/_ak_log + +function _ak_shell_help(){ + _ak_log_info "# AK shell commands:" + _ak_log_info "# /q, /quit, /exit to exit from AKSH" + _ak_log_info "# /help for this help message" + _ak_log_info "# /logfollow to switch to log output" + _ak_log_info "# /commands to print available commands" + _ak_log_info "# " + _ak_log_info "# Hitting CTRL+C will exit the shell" + _ak_log_info "# Hitting CTRL+D or ENTER will execute written input" +} + +function _ak_shell(){ + _ak_shell_help + while true + do + echo -n "> " + read input_command + case "${input_command}" in + \/q|\/quit|\/e|\/exit) + exit;; + \/logfollow) + ak log -f + exit;; + "log -f"|"log --follow") + _ak_log_error 'You can run `ak log -f|--follow` only outside of AKSH' + _ak_log_error 'If though, you want to follow logs but don'"'"'t care exiting the shell' + _ak_log_error 'you can use /logfollow instead.' + ;; + \/help) + _ak_shell_help + ;; + \/commands) + ak + ;; + \/*) + _ak_log_error "Not an AKSH command" + ;; + *) + ak ${input_command} + ;; + esac + done +} |