2019-11-03 14:58:29 +00:00
|
|
|
<p align="center">
|
|
|
|
<img src="https://avatars2.githubusercontent.com/u/57318034?s=60&v=4&"><br>
|
|
|
|
<p align="center">
|
|
|
|
<b>xxh</b> is for using portable Xonsh shell wherever you go through the SSH.
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
<p align="center">
|
2019-11-03 15:14:15 +00:00
|
|
|
<a href="https://asciinema.org/a/osSEzqnmH9pMYEZibNe2K7ZL7" target="_blank"><img src="https://asciinema.org/a/osSEzqnmH9pMYEZibNe2K7ZL7.svg"></a>
|
2019-11-03 14:58:29 +00:00
|
|
|
</p>
|
2019-11-03 14:34:38 +00:00
|
|
|
|
2019-11-03 15:13:42 +00:00
|
|
|
|
2019-11-03 14:34:38 +00:00
|
|
|
## 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'
|
2019-11-03 14:38:13 +00:00
|
|
|
|
|
|
|
xonsh> xxh server
|
2019-11-03 14:34:38 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
## 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](plugins/README.md).
|
|
|
|
|
|
|
|
## 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`.
|
|
|
|
|
2019-11-03 15:17:13 +00:00
|
|
|
### Shortcut to reinstall xxh on host
|
2019-11-03 14:34:38 +00:00
|
|
|
```
|
|
|
|
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](https://github.com/xonsh/xonsh/issues/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.
|
2019-11-03 15:22:54 +00:00
|
|
|
|
|
|
|
# Thanks
|
|
|
|
|
|
|
|
* @niess for https://github.com/niess/linuxdeploy-plugin-python/
|
|
|
|
* @gforsyth for https://github.com/xonsh/xonsh/issues/3374
|
|
|
|
* @scopatz for https://github.com/xonsh/xonsh
|