diff options
author | Karel Kočí <cynerd@email.cz> | 2023-03-21 18:19:32 +0100 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2023-03-21 20:46:05 +0100 |
commit | 7be0acbb1cd6b6d3c4c3df95611cb86be4b46915 (patch) | |
tree | fcdca6619a05b1e72ebb8b9ddf0d04586b434e94 /shellrc.d/ssh | |
parent | f0eab21bab34beb657059cf5dfe91ca8072edb35 (diff) | |
download | shellrc-7be0acbb1cd6b6d3c4c3df95611cb86be4b46915.tar.gz shellrc-7be0acbb1cd6b6d3c4c3df95611cb86be4b46915.tar.bz2 shellrc-7be0acbb1cd6b6d3c4c3df95611cb86be4b46915.zip |
Drop desktop variant and rework nix packages
Diffstat (limited to 'shellrc.d/ssh')
-rw-r--r-- | shellrc.d/ssh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/shellrc.d/ssh b/shellrc.d/ssh new file mode 100644 index 0000000..e2882c8 --- /dev/null +++ b/shellrc.d/ssh @@ -0,0 +1,23 @@ +# vim: ft=sh: + +# SSHFS in client mode. In other words it is reverse sshfs mount. +sshcfs() { + local target="$1" + local local_dir="$2" + local remote_dir="$3" + shift 3 + [[ "$local_dir" = /* ]] || local_dir="$PWD/$local_dir" + + local sftp_server="/usr/lib64/misc/sftp-server" + if [ -e /run/current-system/sw/bin/ssh ]; then + sftp_server="$(readlink -f /run/current-system/sw/bin/ssh)" + sftp_server="${sftp_server%/bin/ssh}/libexec/sftp-server" + fi + + ssh "$@" "$target" mkdir -p "$remote_dir" + dpipe \ + "$sftp_server" \ + = \ + ssh "$@" "$target" sshfs -o idmap=user -o passive -o allow_other \ + ":$local_dir" "$remote_dir" +} |