helper cmd to list remote binaries

master
blob42 1 year ago
parent 5cdcf0210e
commit f33d88916b

@ -58,8 +58,18 @@ def inst_get_binary(conn, package, debug=False):
print(f'installed [bold blue]{bin_name}[/bold blue] at {LOCAL_BIN_PATH}')
def list(args):
"""List installed rust binaries on remote host"""
conn = Connection(args.host)
cargo_list = conn.run("cargo install --list | grep 'v.*:$'", echo=True)
# print(f"{cargo_list.stdout.strip()}")
if cargo_list.failed:
print(cargo_list.stderr)
sys.exit(ERR_CMD)
def install(args):
"""Install rust packages from crates.io on remote host and copy binary to local machine."""
args.debug and print(f'{args}')
print(f'{LOCAL_BIN_PATH}')
@ -70,26 +80,27 @@ def install(args):
package = args.package[0]
else:
for arg in args.package:
print(arg)
if arg.startswith('--') or arg.startswith('-'):
params.append(arg)
else:
package = arg
if len(package) == 0:
print('no package specified')
sys.exit(ERR_CMD)
# if len(package) == 0:
# print('no package specified')
# sys.exit(ERR_CMD)
args.debug and print(f"package {package}, params: {params}")
conn = Connection(args.host)
param_str = ' '.join(params)
cargo_install = conn.run(f'cargo install {param_str} {package}', warn=True, echo=True)
print('{}'.format(cargo_install.stdout.strip()))
# print('{}'.format(cargo_install.stdout.strip()))
sys.exit(0)
if cargo_install.failed:
print(cargo_install.stderr)
sys.exit(ERR_CMD)
inst_get_binary(conn, package, args.debug)
if len(package) > 0:
inst_get_binary(conn, package, args.debug)
def ensure_deps():
@ -109,7 +120,8 @@ if __name__ == '__main__':
ensure_deps()
default_host = os.environ.get('RCARGO_HOST', 'localhost')
parser = argparse.ArgumentParser(description='remote rust cargo commands')
parser.add_argument('-H', '--host', default=default_host)
parser.add_argument('-H', '--host', default=default_host,
help="remote cargo host")
parser.add_argument('-d', '--debug', action='store_true')
parser.add_argument('-b', '--bin-path',
default=CARGO_BIN_PATH,
@ -117,6 +129,8 @@ if __name__ == '__main__':
metavar='')
subparsers = parser.add_subparsers(dest='command')
list_parser = subparsers.add_parser('list', help='list installed packages on remote host')
list_parser.set_defaults(func=list)
install_parser = subparsers.add_parser('install', prefix_chars="+", help='install packages from crates.io with remote build')
install_parser.set_defaults(func=install)

Loading…
Cancel
Save