mirror of
https://github.com/stefanpejcic/openpanel
synced 2025-06-26 18:28:26 +00:00
Create opencli.py
This commit is contained in:
parent
14b381f970
commit
58bab9d737
62
opencli/opencli.py
Normal file
62
opencli/opencli.py
Normal file
@ -0,0 +1,62 @@
|
||||
import click
|
||||
import logging
|
||||
import os
|
||||
from faq import faq
|
||||
from user import list_users
|
||||
|
||||
# Set up logging
|
||||
log_file = "opencli_commands.log"
|
||||
logging.basicConfig(filename=log_file, level=logging.INFO,
|
||||
format='%(asctime)s - %(message)s')
|
||||
|
||||
# Global variable to keep track of command usage
|
||||
command_usage = {}
|
||||
|
||||
@click.group(invoke_without_command=True)
|
||||
@click.option("--debug", is_flag=True, help="Enable debug mode.")
|
||||
@click.pass_context
|
||||
def opencli(ctx, debug):
|
||||
"""OpenCLI: A command-line interface for managing OpenPanel server."""
|
||||
ctx.ensure_object(dict)
|
||||
ctx.obj["DEBUG"] = debug
|
||||
if debug:
|
||||
click.echo("Debug mode is ON")
|
||||
|
||||
@click.command()
|
||||
def commands():
|
||||
"""List all available commands."""
|
||||
click.echo("Available commands:")
|
||||
for command_name, command in opencli.commands.items():
|
||||
click.echo(f"- {command_name}: {command.help}")
|
||||
# Print registered commands for debugging
|
||||
click.echo("Registered commands:")
|
||||
for command in opencli.commands:
|
||||
click.echo(f" - {command}")
|
||||
|
||||
def log_command(command_name, *args):
|
||||
"""Log the command execution."""
|
||||
command_line = f"{command_name} {' '.join(args)}"
|
||||
logging.info(command_line)
|
||||
|
||||
|
||||
|
||||
################ version ################
|
||||
@opencli.command(name='version', short_help='Show the OpenPanel version')
|
||||
def version():
|
||||
"""Check and display the installed OpenPanel version."""
|
||||
VERSION_FILE_PATH = "/usr/local/panel/version"
|
||||
if os.path.isfile(VERSION_FILE_PATH):
|
||||
with open(VERSION_FILE_PATH, "r") as file:
|
||||
local_version = file.read().strip()
|
||||
click.echo(local_version)
|
||||
else:
|
||||
click.echo('{"error": "Local version file not found"}', err=True)
|
||||
|
||||
############# version ################
|
||||
|
||||
# Register the users command
|
||||
opencli.add_command(faq)
|
||||
opencli.add_command(list_users)
|
||||
|
||||
if __name__ == "__main__":
|
||||
opencli(obj={})
|
Loading…
Reference in New Issue
Block a user