You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.3 KiB
38 lines
1.3 KiB
##
|
|
## ** mod-mosh: Live session with `lmosh` command **
|
|
#
|
|
#* version: 2019-11-16
|
|
#* author: Michael Arbet (marbet@redhat.com)
|
|
#* home: https://github.com/micharbet/CLE
|
|
#* license: GNU GPL v2
|
|
#* Copyright (C) 2019 by Michael Arbet
|
|
#
|
|
# 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 2
|
|
# of the License, or (at your option) any later version.
|
|
#
|
|
## `lmosh [user@]host` - live remote session with mobile shell
|
|
|
|
lmosh () (
|
|
[ "$1" ] || { cle help lmosh; return 1; }
|
|
_clepak tar
|
|
|
|
# Here is the issue: other wrappers use /var/tmp/$USER but mosh simply can't.
|
|
# Preparation phase runs as 'server' code before start mosh-server. At this
|
|
# point the $USER contains remote username.
|
|
# On the other side, there's the command run by mosh itself but this code
|
|
# is run locally and the remote username might not be known!
|
|
# Temporary home must be defined outside mosh command.
|
|
|
|
TEMPHOME=/var/tmp/$CLE_USER
|
|
command mosh --no-init --server="
|
|
# H=/var/tmp/\$USER; mkdir -m 755 -p \$H; cd \$H
|
|
mkdir -p $TEMPHOME
|
|
cd $TEMPHOME
|
|
[ $OSTYPE = darwin ] && D=D || D=d
|
|
base64 -\$D <<<$C64 | tar xzf - 2>/dev/null
|
|
mosh-server" \
|
|
$@ $TEMPHOME/$RC
|
|
)
|
|
|
|
|