Files
metalcheck-cli/cli/main.py
2024-12-11 12:56:18 +00:00

43 lines
1.2 KiB
Python

import os
import configparser
import click
from .commands.metal import metal_nodes
from .commands.vm import virtual_machines
from .commands.k8s import kubernetes_nodes
from .commands.export import export_data
from .visual import visual_dashboard
# Default configuration file path
CONFIG_FILE_PATH = os.path.expanduser("~/.config/metalcheck.conf")
# Load configuration
def load_config():
config = configparser.ConfigParser()
if os.path.exists(CONFIG_FILE_PATH):
config.read(CONFIG_FILE_PATH)
return config
@click.group()
@click.option("--base-url", help="Set the backend base URL.")
@click.pass_context
def cli(ctx, base_url):
"""
Metal Check CLI: A command-line interface for managing and monitoring Metal Check resources.
"""
config = load_config()
# Default backend URL
default_base_url = config.get("DEFAULT", "base_url", fallback="http://localhost:8000")
ctx.ensure_object(dict)
ctx.obj["BASE_URL"] = base_url or default_base_url
# Register commands
cli.add_command(metal_nodes, name="metal")
cli.add_command(virtual_machines, name="vm")
cli.add_command(kubernetes_nodes, name="k8s")
cli.add_command(export_data, name="export")
cli.add_command(visual_dashboard, name="visual")
if __name__ == "__main__":
cli()