ssh-config: add gen-config.py + homelab ssh-config CLI subcommand
This commit is contained in:
19
bin/homelab
19
bin/homelab
@@ -517,6 +517,19 @@ def cmd_ssh(args: argparse.Namespace) -> int:
|
||||
os.execvp(cmd[0], cmd)
|
||||
|
||||
|
||||
def cmd_ssh_config(args: argparse.Namespace) -> int:
|
||||
"""Generate SSH config from inventory.yaml."""
|
||||
script = CONTEXT / "ssh" / "gen-config.py"
|
||||
if not script.exists():
|
||||
die(f"ssh-config generator not found: {script}")
|
||||
|
||||
cmd = [sys.executable or "python3", str(script)]
|
||||
if args.install:
|
||||
cmd.append("--install")
|
||||
|
||||
return subprocess.call(cmd)
|
||||
|
||||
|
||||
def cmd_pct(args: argparse.Namespace) -> int:
|
||||
lxc = args.lxc
|
||||
inv = inventory()
|
||||
@@ -1459,6 +1472,12 @@ def main() -> int:
|
||||
sp.add_argument("command", nargs=argparse.REMAINDER)
|
||||
sp.set_defaults(func=cmd_ssh)
|
||||
|
||||
sp = sub.add_parser("ssh-config",
|
||||
help="generate ~/.ssh/config.d/homelab from inventory.yaml")
|
||||
sp.add_argument("--install", "-i", action="store_true",
|
||||
help=f"write to ~/.ssh/config.d/homelab and wire Include into main config")
|
||||
sp.set_defaults(func=cmd_ssh_config)
|
||||
|
||||
sp = sub.add_parser("pct", help="proxy pct commands via ssh to hubris")
|
||||
sp.add_argument("lxc")
|
||||
sp.add_argument("action")
|
||||
|
||||
Reference in New Issue
Block a user