Source code for timelink.cli

"""Console script for timelink.

Also provides basic mhk manager functionality.

"""
import typer
import platform
import docker
from timelink.mhk.utilities import get_mhk_info, is_mhk_installed

# We use Typer https://typer.tiangolo.com
app = typer.Typer(help="Timelink and MHK manager")
mhk_app = typer.Typer()
app.add_typer(mhk_app, name="mhk", help="MHK legacy manager")


[docs]@mhk_app.command(name="version") def mhk_version(): """shows MHK manager version Demonstrates how to access MHK installation files and usage of Docker API """ if is_mhk_installed(): mhk_info = get_mhk_info() client = docker.from_env() dv = client.version() mhkv = f""" Manager version: {mhk_info.mhk_version} Docker version: {dv["Version"]} Host OS: {platform.system()} {platform.release()} User home: {mhk_info.user_home} mhk-home: {mhk_info.mhk_home} mhk-home init: {mhk_info.mhk_home_init} mhk-home update: {mhk_info.mhk_home_update} mhk use-tag: {mhk_info.mhk_app_env.get("TAG", "*none*")} mhk local host: {mhk_info.mhk_host} MHK URL: http://127.0.0.1:8080/mhk Kleio URL: http://127.0.0.1:8088 Portainer URL: http://127.0.0.1:9000""" typer.echo(mhkv) else: type.echo("Could not find a MHK instalation") return 0
[docs]@mhk_app.command(name="status") def mhk_status(): """shows docker status information""" client = docker.from_env() dinfo = client.info() typer.echo( f""" Containers :{dinfo['Containers']} Running :{dinfo['ContainersRunning']} Paused :{dinfo['ContainersPaused']} Stopped :{dinfo['ContainersStopped']} """ ) return 0
[docs]@app.callback() def main(): """ This is the timelink/MHK manager on the command line """ typer.echo("This is the timelink/MHK manager")
if __name__ == "__main__": app() # pragma: no cover