Files
nextjs-python-web-template/pkgs/clan-cli/clan_cli/machines/create.py
2023-10-13 19:56:10 +02:00

34 lines
1000 B
Python

import argparse
import logging
from typing import Dict
from ..async_cmd import CmdOut, run, runforcli
from ..nix import nix_shell
from .folders import machine_folder
log = logging.getLogger(__name__)
async def create_machine(name: str) -> Dict[str, CmdOut]:
folder = machine_folder(name)
folder.mkdir(parents=True, exist_ok=True)
# create empty settings.json file inside the folder
with open(folder / "settings.json", "w") as f:
f.write("{}")
response = {}
out = await run(nix_shell(["git"], ["git", "add", str(folder)]))
response["git add"] = out
out = await run(nix_shell(["git"], ["git", "commit", "-m", f"Added machine {name}", str(folder)]))
response["git commit"] = out
return response
def create_command(args: argparse.Namespace) -> None:
runforcli(create_machine, args.host)
def register_create_parser(parser: argparse.ArgumentParser) -> None:
parser.add_argument("host", type=str)
parser.set_defaults(func=create_command)