From 5c4db9ddb42ec55a1210cd288ed9289f6428fdae Mon Sep 17 00:00:00 2001 From: anki-code Date: Sun, 19 Apr 2020 17:39:40 +0300 Subject: [PATCH] 0.7.13 --- README.md | 11 +++++------ xxh_xxh/xxh.py | 21 +++++++++++++++------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 55f3ded..eafb423 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Currently supported OS is Linux on x86_64. ### Prerun plugins [Prerun plugins](https://github.com/xxh/xxh/wiki#plugins) allow to bring any portable tools, dotfiles, aliases to xxh session before running shell. -Pinned plugins: [sudo](https://github.com/xxh/xxh-plugin-prerun-sudo), [mc](https://github.com/xxh/xxh-plugin-prerun-mc), [docker](https://github.com/xxh/xxh-plugin-prerun-docker), [python](https://github.com/xxh/xxh-plugin-prerun-python), [vim](https://github.com/xxh/xxh-plugin-prerun-vim), [xxh](https://github.com/xxh/xxh-plugin-prerun-xxh). +Pinned plugins: [sudo](https://github.com/xxh/xxh-plugin-prerun-sudo), [dotfiles](https://github.com/xxh/xxh-plugin-prerun-dotfiles), [docker](https://github.com/xxh/xxh-plugin-prerun-docker), [python](https://github.com/xxh/xxh-plugin-prerun-python), [xxh](https://github.com/xxh/xxh-plugin-prerun-xxh), [vim](https://github.com/xxh/xxh-plugin-prerun-vim), [mc](https://github.com/xxh/xxh-plugin-prerun-mc). ## Usage Use `xxh` as replace `ssh` to connecting to the host without changing ssh arguments: @@ -147,13 +147,12 @@ Hello from Docker! myhost> xxh-docker-stop ``` -### Put the cozy configs to xxh session +### Bring dotfiles to xxh session -For example there is [xxh-plugin-prerun-mc](https://github.com/xxh/xxh-plugin-prerun-mc) which creates -[Midnight Commander](https://en.wikipedia.org/wiki/Midnight_Commander) (mc) config when you go to the host using xxh. -You can fork it and create your cozy settings for mc once and forever. +There is [xxh-plugin-prerun-dotfiles](https://github.com/xxh/xxh-plugin-prerun-dotfiles) which creates config files +when you go to the host using xxh. You can fork it and create your cozy settings once and forever. -### Oh My Zsh seamless SSH ([demo](https://asciinema.org/a/rCiT9hXQ5IdwqOwg6rifyFZzb)) +### Seamless Oh My Zsh ([demo](https://asciinema.org/a/rCiT9hXQ5IdwqOwg6rifyFZzb)) ```shell script source xxh.zsh myhost +I xxh-plugin-zsh-ohmyzsh +if +q ``` diff --git a/xxh_xxh/xxh.py b/xxh_xxh/xxh.py index 1d63e9d..763562b 100644 --- a/xxh_xxh/xxh.py +++ b/xxh_xxh/xxh.py @@ -7,7 +7,7 @@ from base64 import b64encode from signal import signal, SIGINT from .shell import * -XXH_VERSION = '0.7.12' +XXH_VERSION = '0.7.13' def sigint_handler(signal_received, frame): sys.exit(0) @@ -877,7 +877,8 @@ class xxh: # Upload files - + bash_wrap_begin = "bash -c 'shopt -s dotglob && " + bash_wrap_end = "'" if which('rsync') and host_info['rsync']: self.eprint('First time upload using rsync (this will be omitted on the next connections)') @@ -891,7 +892,9 @@ class xxh: progress=('' if self.quiet or not self.verbose else '--progress') ) - self.S("{rsync} {shell_build_dir}/ {host}:{host_xxh_shell_build_dir}/ 1>&2".format( + self.S("{bb}{rsync} {shell_build_dir}/ {host}:{host_xxh_shell_build_dir}/ 1>&2{be}".format( + bb=bash_wrap_begin, + be=bash_wrap_end, rsync=rsync, host=A(host), shell_build_dir=shell_build_dir, @@ -900,7 +903,9 @@ class xxh: for local_plugin_dir in list(local_plugins_dir.glob(f'xxh-plugin-prerun-*')) + list(local_plugins_dir.glob(f'xxh-plugin-{self.short_shell_name}-*')): local_plugin_build_dir = local_plugin_dir/'build' local_plugin_name = local_plugin_dir.name - self.S("{rsync} {local_plugin_build_dir}/* {host}:{host_xxh_plugins_dir}/{local_plugin_name}/build/ 1>&2".format( + self.S("{bb}{rsync} {local_plugin_build_dir}/* {host}:{host_xxh_plugins_dir}/{local_plugin_name}/build/ 1>&2{be}".format( + bb=bash_wrap_begin, + be=bash_wrap_end, rsync=rsync, host=A(host), local_plugin_build_dir=local_plugin_build_dir, @@ -915,7 +920,9 @@ class xxh: ssh_arguments=A(self.ssh_arguments), arg_q=A(arg_q) ) - self.S('{scp} {shell_build_dir} {host}:{host_xxh_shell_dir}/ 1>&2'.format( + self.S('{bb}{scp} {shell_build_dir} {host}:{host_xxh_shell_dir}/ 1>&2{be}'.format( + bb=bash_wrap_begin, + be=bash_wrap_end, scp=scp, shell_build_dir=shell_build_dir, host=host, @@ -925,7 +932,9 @@ class xxh: for local_plugin_dir in list(local_plugins_dir.glob(f'xxh-plugin-{self.short_shell_name}-*')) + list(local_plugins_dir.glob(f'xxh-plugin-{self.short_shell_name}-*')): local_plugin_build_dir = local_plugin_dir/'build' local_plugin_name = local_plugin_dir.name - self.S('{scp} {local_plugin_build_dir}/* {host}:{host_xxh_plugins_dir}/{local_plugin_name}/build/ 1>&2'.format( + self.S('{bb}{scp} {local_plugin_build_dir}/* {host}:{host_xxh_plugins_dir}/{local_plugin_name}/build/ 1>&2{be}'.format( + bb=bash_wrap_begin, + be=bash_wrap_end, scp=scp, local_plugin_build_dir=local_plugin_build_dir, host=host,