vultron/vultron/vultron.py

42 lines
982 B
Python
Raw Normal View History

2022-08-18 09:55:13 +00:00
import click
import os
import sys
import vultron.cmd
import vultron.err
2022-08-17 14:54:45 +00:00
from vultron.cmds import *
2022-08-18 09:55:13 +00:00
@click.command()
@click.option("--help", is_flag=True)
@click.option("--api-key", type=str)
@click.option("--out",
type=click.Choice(vultron.display.FORMATS.keys()), default="table")
2022-08-18 09:55:13 +00:00
@click.argument("args", nargs=-1)
# FIXME: click should not show any help messages
def app(help, api_key, out, args):
2022-08-18 09:55:13 +00:00
env_key = os.getenv("VULTR_API_KEY")
if api_key is None and env_key:
api_key = env_key
shortcut = "help"
if len(args):
shortcut = args[0]
args = args[1:]
try:
vultron_cmd = vultron.cmd.find_cmd(shortcut)
vultron_api = vultron_cmd(sys.argv[0], api_key=api_key, out=out)
2022-08-18 09:55:13 +00:00
if len(args):
shortcut = args[0]
args = args[1:]
else:
shortcut = vultron_api.default
vultron_api.exec_shortcut(shortcut, *args)
except vultron.err.Error as err:
print(f"error: {err}", file=sys.stderr)
# FIXME: Activate help command