xxh/README.md
2019-11-03 19:33:31 +03:00

2.4 KiB


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


Installation

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

xonsh> 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 plugins to xxh.

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

Known Issues

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

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 of system.

Thanks