From 55b5630e78cae3245d68eb3ab9b7fa870454aa98 Mon Sep 17 00:00:00 2001 From: kaotisk Date: Sat, 1 Feb 2025 07:20:10 +0200 Subject: new: interactive shell for ak --- lib/_ak_sh | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 lib/_ak_sh (limited to 'lib') 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 . +### + +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 +} -- cgit v1.2.3