adding CLI help

This commit is contained in:
evilchili 2025-08-08 16:07:18 -07:00
parent a566423e8a
commit 8435892c57
2 changed files with 20 additions and 4 deletions

View File

@ -17,7 +17,10 @@ app_state = {}
@app.callback(invoke_without_command=True) @app.callback(invoke_without_command=True)
def main( def main(
ctx: typer.Context, ctx: typer.Context,
config_dir: Path = Path(__file__).parent.parent / "tilesets", config_dir: Path = typer.Option(
default=Path(__file__).parent.parent / "tilesets",
help="The path containing tile sets to load."
),
verbose: bool = typer.Option(default=False, help="If True, increase verbosity of status messages."), verbose: bool = typer.Option(default=False, help="If True, increase verbosity of status messages."),
): ):
app_state["tileset_manager"] = _tileset.TileSetManager(config_dir) app_state["tileset_manager"] = _tileset.TileSetManager(config_dir)
@ -33,12 +36,18 @@ def main(
@app.command() @app.command()
def list(): def list():
"""
List available tile sets.
"""
manager = app_state["tileset_manager"] manager = app_state["tileset_manager"]
print("\n".join(manager.available)) print("\n".join(manager.available))
@app.command() @app.command()
def inspect(source: Path): def inspect(source: Path = typer.Argument(help="The battle map text file to laod.")):
"""
Print information about the specified battle map text file.
"""
manager = app_state["tileset_manager"] manager = app_state["tileset_manager"]
bmap = battlemap.BattleMap(name=source.name, source=source, tileset=manager.console_map) bmap = battlemap.BattleMap(name=source.name, source=source, tileset=manager.console_map)
bmap.load() bmap.load()
@ -47,7 +56,14 @@ def inspect(source: Path):
@app.command() @app.command()
def render(source: Path, outfile: Path, tileset: str = typer.Option(help="The tile set to use.")): def render(
source: Path = typer.Argument(help="The battle map text file to load."),
outfile: Path = typer.Argument(help="The file to create."),
tileset: str = typer.Option(
help="The name of the tile set to use (run mapper list to see what's available).")):
"""
Create a PNG image of a battle map using a tile set.
"""
manager = app_state["tileset_manager"] manager = app_state["tileset_manager"]
if tileset not in manager.available: if tileset not in manager.available:
raise RuntimeError(f"Could not locate the tile set {tileset} in {manager.config_dir}.") raise RuntimeError(f"Could not locate the tile set {tileset} in {manager.config_dir}.")
@ -65,7 +81,7 @@ def render(source: Path, outfile: Path, tileset: str = typer.Option(help="The ti
sys.exit(1) sys.exit(1)
image = bmap.render() image = bmap.render()
# image = image.resize((int(0.5 * image.size[0]), int(0.5 * image.size[1]))) image = image.resize((int(0.5 * image.size[0]), int(0.5 * image.size[1])))
image.save(outfile) image.save(outfile)
print(f"Wrote {outfile.stat().st_size} bytes to {outfile}") print(f"Wrote {outfile.stat().st_size} bytes to {outfile}")