diff --git a/obsws_cli/app.py b/obsws_cli/app.py index aff8caa..077d81c 100644 --- a/obsws_cli/app.py +++ b/obsws_cli/app.py @@ -8,7 +8,18 @@ import typer from pydantic import ConfigDict from pydantic_settings import BaseSettings -from . import group, input, record, scene, scenecollection, sceneitem, stream +from . import ( + group, + input, + profile, + record, + replaybuffer, + scene, + scenecollection, + sceneitem, + studiomode, + virtualcam, +) from .alias import AliasGroup @@ -31,13 +42,19 @@ class Settings(BaseSettings): app = typer.Typer(cls=AliasGroup) -app.add_typer(scene.app, name='scene') -app.add_typer(sceneitem.app, name='scene-item') -app.add_typer(group.app, name='group') -app.add_typer(input.app, name='input') -app.add_typer(record.app, name='record') -app.add_typer(stream.app, name='stream') -app.add_typer(scenecollection.app, name='scene-collection') +for module in ( + group, + input, + profile, + record, + replaybuffer, + scene, + scenecollection, + sceneitem, + studiomode, + virtualcam, +): + app.add_typer(module.app, name=module.__name__.split('.')[-1]) @app.command() diff --git a/obsws_cli/validate.py b/obsws_cli/validate.py index ec609bd..cccb413 100644 --- a/obsws_cli/validate.py +++ b/obsws_cli/validate.py @@ -40,3 +40,9 @@ def item_in_scene_item_list( """Check if an item exists in a scene.""" resp = ctx.obj.get_scene_item_list(scene_name) return any(item.get('sourceName') == item_name for item in resp.scene_items) + + +def profile_exists(ctx: typer.Context, profile_name: str) -> bool: + """Check if a profile exists.""" + resp = ctx.obj.get_profile_list() + return any(profile == profile_name for profile in resp.profiles)