aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkvmx23
-rwxr-xr-xkvmx-shell25
2 files changed, 47 insertions, 1 deletions
diff --git a/kvmx b/kvmx
index e4887e0..b6ba0b2 100755
--- a/kvmx
+++ b/kvmx
@@ -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