aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.md23
-rwxr-xr-xkvmx7
2 files changed, 25 insertions, 5 deletions
diff --git a/ChangeLog.md b/ChangeLog.md
index b99c8cf..1f2b69b 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,19 +1,36 @@
# ChangeLog
-## 0.4.0 - Unreleased
+## 0.4.0 - 2024-11-22
* Adds `kvmx sshdir` action, which SSH's to the guest and changes to a given
folder. If no arguments are given, it tries to change to the equivalent
- folder in the guest, so it can be a way to "cd" to the same directory but
+ folder in the guest, so it can be a way to `cd` to the same directory but
inside the guest.
If the folder in the host is also mounted in the guest in a similar
mountpoint, it's a handy way to move to the same folder, but inside the
guest.
- For folders inside $HOME, user name conversion is automatically done since
+ For folders inside $`HOME`, user name conversion is automatically done since
the user inside the guest might not match the user in the host.
+ Note: this is done in a best-effort basis. It might not work depending
+ on the remote shell in use. To increase the changes, it's suggested that
+ the remote shell's startup scripts support the `STARTUP_FOLDER` as
+ follows.
+
+ Example 1 (sh-compatible):
+
+ # Only change to the startup folder if it's set
+ if [ ! -z "$STARTUP_FOLDER" ]; then
+ cd $STARTUP_FOLDER
+ fi
+
+ Example 2 (sh-compatible):
+
+ # Make sure we start at the startup folder, defaulting to home
+ cd $STARTUP_FOLDER
+
## 0.3.0 - 2024-09-19
* Increase the maximum number of shared folders to avoid error in when KVMX
diff --git a/kvmx b/kvmx
index e4d1cd9..fee8c3e 100755
--- a/kvmx
+++ b/kvmx
@@ -19,7 +19,7 @@
#
# Basic parameters
-VERSION="0.3.0"
+VERSION="0.4.0"
BASENAME="`basename $0`"
DIRNAME="`dirname $0`"
ACTION="$1"
@@ -1030,11 +1030,14 @@ function kvmx_sshdir {
# * https://stackoverflow.com/questions/626533/how-can-i-ssh-directly-to-a-particular-directory#626670
# * https://unix.stackexchange.com/questions/86941/how-to-ssh-into-a-specific-directory
#
- $ssh_env $SSH_COMMAND -t -p $SSH 127.0.0.1 "cd $DEST && exec \$SHELL --login"
+ #$ssh_env $SSH_COMMAND -t -p $SSH 127.0.0.1 "cd $DEST && exec \$SHELL --login"
# Implementation using approach 2, with a special environment variable
# STARTUP_FOLDER, which needs to be supported by the shell startup scripts
#$ssh_env $SSH_COMMAND -t -p $SSH 127.0.0.1 "export STARTUP_FOLDER=$DEST && exec \$SHELL --login"
+
+ # Implementation using approach 3: best effort, trying both approaches 1 and 2 at the same time
+ $ssh_env $SSH_COMMAND -t -p $SSH 127.0.0.1 "export STARTUP_FOLDER=$DEST && cd $DEST && exec \$SHELL --login"
}
# Enhanced SSH login into the guest