xxh-shell-nushell/build.xsh
2020-03-14 17:49:09 +03:00

44 lines
1.3 KiB
Plaintext
Executable File

#!/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, argparse
from shutil import which
parser = argparse.ArgumentParser(description='build')
parser.add_argument('-q', '--quiet', action='store_true', help=f"Quiet mode")
opt = parser.parse_args()
def eprint(*args, **kwargs):
if not opt.quiet:
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)
cp @(script_dir / 'entrypoint.sh') @(build_dir)/
cd @(build_dir)
if p'your_portable_shell'.exists():
eprint('SKIP: Portable shell already builded')
else:
shell_url='...'
eprint(f'Download <your_portable_shell> from {shell_url}')
arg_q = ['-q'] if opt.quiet else []
arg_s = ['-s'] if opt.quiet else []
arg_progress = [] if opt.quiet else ['--show-progress']
if which('wget'):
r =![wget @(arg_q) @(arg_progress) @(shell_url) -O your_portable_shell]
if r.returncode != 0:
eprint(f'Error while download using wget: {r}')
exit(1)
elif which('curl'):
r =![curl @(arg_s) -L @(shell_url) -o your_portable_shell]
if r.returncode != 0:
eprint(f'Error while download using curl: {r}')
exit(1)