aboutsummaryrefslogtreecommitdiff
path: root/lib/_ak_sh
blob: a1cf60ff29366713730d2c8c3dfb9313b6e4fda1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
}