init
This commit is contained in:
parent
589efb830a
commit
7baaf6898b
16
README.md
Normal file
16
README.md
Normal file
@ -0,0 +1,16 @@
|
||||
## Workflow
|
||||
|
||||
1. Fork this repo to create your xxh shell entrypoint.
|
||||
2. Rename your repo to `xxh-shell-myshell`
|
||||
3. Install [xxh](https://github.com/xxh/xxh) and run once to creating `~/.xxh`
|
||||
4. `cd ~/.xxh/shells && git clone https://github.com/you/xxh-shell-myshell && cd xxh-shell-myshell`
|
||||
5. Edit `build.xsh` script
|
||||
6. Edit `entrypoint.sh` script
|
||||
7. Run `./build.xsh`
|
||||
8. Try to connect `xxh myhost +s xxh-shell-myshell`
|
||||
9. If everything works commit and push your changes
|
||||
10. You rock! [Tell us about your work](https://gitter.im/xonssh-xxh/community)!
|
||||
|
||||
## xxh-shell example
|
||||
|
||||
Real life example of creating xxh-shell and xxh-plugins you could find in [xxh-shell-xonsh-appimage](https://github.com/xxh/xxh-shell-xonsh-appimage).
|
22
build.xsh
Executable file
22
build.xsh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env xonsh
|
||||
|
||||
#
|
||||
# Build script is needed to create `build` directory with all files needed to run portable shell on the host
|
||||
#
|
||||
|
||||
import sys
|
||||
from shutil import which
|
||||
|
||||
def eprint(*args, **kwargs):
|
||||
print(*args, file=sys.stderr, **kwargs)
|
||||
|
||||
script_dir = pf"{__file__}".absolute().parent
|
||||
build_dir = script_dir / 'build'
|
||||
rm -rf @(build_dir)/
|
||||
mkdir -p @(build_dir)
|
||||
cd @(build_dir)
|
||||
|
||||
if p'your_portable_shell'.exists():
|
||||
eprint('SKIP: Portable shell already builded')
|
||||
else:
|
||||
wget https://your_portable_shell
|
31
entrypoint.sh
Executable file
31
entrypoint.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Entrypoint script should be pure bash.
|
||||
#
|
||||
|
||||
#
|
||||
# Support three arguments (this recommend but not required):
|
||||
# -f <file> Execute file on host, print the result and exit
|
||||
# -c <command> Execute command on host, print the result and exit
|
||||
# -v Verbose mode to debug
|
||||
#
|
||||
while getopts f:c:v: option
|
||||
do
|
||||
case "${option}"
|
||||
in
|
||||
f) EXECUTE_FILE=${OPTARG};;
|
||||
c) EXECUTE_COMMAND=${OPTARG};;
|
||||
v) VERBOSE=${OPTARG};;
|
||||
esac
|
||||
done
|
||||
|
||||
#
|
||||
# Move to current directory
|
||||
#
|
||||
CURRENT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd $CURRENT_DIR
|
||||
|
||||
#
|
||||
# Run the portable shell
|
||||
#
|
||||
./your_portable_shell # $EXECUTE_FILE $EXECUTE_COMMAND $VERBOSE
|
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@ -0,0 +1 @@
|
||||
xonsh
|
Loading…
Reference in New Issue
Block a user