No description
Find a file
2019-11-04 13:48:32 +03:00
plugins Update README.md 2019-11-04 13:48:32 +03:00
LICENSE Initial commit 2019-11-03 15:04:14 +03:00
README.md Update README.md 2019-11-04 12:13:21 +03:00
requirements.txt Create requirements.txt 2019-11-04 11:38:04 +03:00
xonsh_plugins_rc.xsh init 2019-11-03 16:06:26 +03:00
xonshrc.xsh init 2019-11-03 16:06:26 +03:00
xxh.xsh init 2019-11-03 16:06:26 +03:00


xxh is for using portable xonsh shell wherever you go through the SSH.


Installation

Run in your xonsh:

git clone --depth 1 https://github.com/xonssh/xxh ~/.xxh
echo "aliases['xxh'] = 'xonsh ~/.xxh/xxh.xsh'" >> ~/.xonshrc
aliases['xxh'] = 'xonsh ~/.xxh/xxh.xsh'

Then try:

xxh <server>

Usage

> xxh -h
usage: xxh.xsh [-h] [-i] [-p TARGET_PATH] [-m METHOD] [-f] server

positional arguments:
  server                Destination may be specified as hostname or server
                        name from ~/.ssh/config

optional arguments:
  -h, --help            show this help message and exit
  -i, --install         Install xonsh to host
  -p TARGET_PATH, --target-path TARGET_PATH
                        Target path. Default: ~/.xxh
  -m METHOD, --method METHOD
                        Currently supported single 'appimage' method
  -f, --force           Delete target directory when install xonsh to host

Plugins

You can add or create plugins to xxh with your own lovely functions.

Notes

Using pip and python

The xxh xonsh will use pip and python from xonsh.AppImage by default. You can install pip packages ordinally with pip install. They will appear in $XXH_HOME/pip.

Shortcut to reinstall xxh on host

xxh <server> -i -f

How it works?

When you run xxh <server> command:

  1. If it needed xxh script will download xonsh.AppImage. This is portable version of xonsh. URL you can find in xxh.xsh

  2. If it needed xxh script copies the portable xonsh on the host (~/.xxh by default) along with init scripts and plugins.

  3. Finally xxh makes ssh connection to server and running remote portable xonsh shell without any affection on the target system.

Thanks

Known Issues

GLIBs versions

Current method to make xonsh portable is using an AppImage which was built on manylinux2010 (PEP 571). In case you see the error like /xonsh-x86_64.AppImage: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.25 not found (required by /ppp/xonsh-x86_64.AppImage) this means you should rebuild the AppImage for older version of linux distributive. Try linuxdeploy-plugin-python.

WSL1: ^Z

# xxh YT-1300
^Z
Unknown answer from server when checking direcotry /home/hansolo/.xxh:

This issue was addressed to Xonsh team in 3367. Just try to run command again.