diff options
-rwxr-xr-x | kvmx | 23 | ||||
-rwxr-xr-x | kvmx-shell | 25 |
2 files changed, 47 insertions, 1 deletions
@@ -76,7 +76,7 @@ function __kvmx_create_config_entry { # Initialize function __kvmx_initialize { - if [ "$ACTION" == "app_base" ]; then + if [ "$ACTION" == "app_base" ] || [ "$ACTION" == "version" ]; then return fi @@ -1627,6 +1627,27 @@ function kvmx_compress { echo "compression ratio: $ratio" } +# Version +function kvmx_version { + echo $VERSION +} + +# Shell +function kvmx_shell { + # While a "quit" command isn't entered, read STDIN + while read -rep "kvmx:/${USER}@${VM}> " STDIN; do + if [ "$STDIN" == "quit" ] || [ "$STDIN" == "exit" ] || [ "$STDIN" == "bye" ]; then + break + elif [ "$STDIN" == "shell" ]; then + echo "Why you need nesting?" + elif [[ -n "$STDIN" && "$STDIN" != "#"* ]]; then + # If line is not empty or commented, process command + STDIN=($STDIN) + $APP_BASE/kvmx ${STDIN[0]} $VM ${STDIN[@]:1} + fi + done +} + # Dispatch if type kvmx_$ACTION 2> /dev/null | grep -q "kvmx_$ACTION ()"; then __kvmx_initialize $* diff --git a/kvmx-shell b/kvmx-shell new file mode 100755 index 0000000..5149087 --- /dev/null +++ b/kvmx-shell @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# +# kvmx-shell login shell wrapper for a single VM per user +# +# Copyright (C) 2017 Silvio Rhatto - rhatto at riseup.net +# +# 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 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/>. +# + +# Parameters +DIRNAME="`dirname $0`" + +# Dispatch +$DIRNAME/kvmx shell $USER |