diff --git a/app/__init__.py b/app/__init__.py index 30588eb..3585d46 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -34,6 +34,11 @@ def create_app(): spec.loader.exec_module(mod) if hasattr(mod, 'bp'): app.register_blueprint(mod.bp) + + # Register CLI commands if the plugin has any + if hasattr(mod, 'cli_commands'): + for command in mod.cli_commands: + app.cli.add_command(command) return app diff --git a/plugins/cli/routes.py b/plugins/cli/routes.py new file mode 100644 index 0000000..f189df2 --- /dev/null +++ b/plugins/cli/routes.py @@ -0,0 +1,20 @@ +# plugins/cli/routes.py + +import click +from flask.cli import with_appcontext +from app.extensions import db +from plugins.plant.models import Plant + +@click.command('preload-data') +@with_appcontext +def preload_data(): + """Preloads plant data into the database.""" + if not Plant.query.first(): + db.session.add(Plant(name="Example Plant")) + db.session.commit() + click.echo("✅ Preloaded sample plant.") + else: + click.echo("ℹ️ Plant data already exists.") + +# Export command(s) so __init__.py can register them +cli_commands = [preload_data]