30 lines
662 B
Python
30 lines
662 B
Python
import argparse
|
|
import logging
|
|
import os
|
|
|
|
from .folders import machines_folder
|
|
from .types import validate_hostname
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
def list_machines() -> list[str]:
|
|
path = machines_folder()
|
|
log.debug(f"Listing machines in {path}")
|
|
if not path.exists():
|
|
return []
|
|
objs: list[str] = []
|
|
for f in os.listdir(path):
|
|
if validate_hostname(f):
|
|
objs.append(f)
|
|
return objs
|
|
|
|
|
|
def list_command(args: argparse.Namespace) -> None:
|
|
for machine in list_machines():
|
|
print(machine)
|
|
|
|
|
|
def register_list_parser(parser: argparse.ArgumentParser) -> None:
|
|
parser.set_defaults(func=list_command)
|