Skip to content

Commit a892b3c

Browse files
authored
Adds CLI command to uninstall plugins (Netflix#904)
* Adds CLI command to uninstall plugins * Converts to variadic argument * Bg red if plugin slug does not exist
1 parent ed14fdb commit a892b3c

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

‎src/dispatch/cli.py‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,26 @@ def install_plugins(force):
137137
db_session.commit()
138138

139139

140+
@plugins_group.command("uninstall")
141+
@click.argument("plugins", nargs=-1)
142+
def uninstall_plugins(plugins):
143+
"""Uninstalls all plugins, or only one."""
144+
from dispatch.database import SessionLocal
145+
from dispatch.plugin import service as plugin_service
146+
147+
db_session = SessionLocal()
148+
149+
for plugin_slug in plugins:
150+
plugin = plugin_service.get_by_slug(db_session=db_session, slug=plugin_slug)
151+
if not plugin:
152+
click.secho(
153+
f"Plugin slug {plugin_slug} does not exist. Make sure you're passing the plugin's slug.",
154+
fg="red",
155+
)
156+
157+
plugin_service.delete(db_session=db_session, plugin_id=plugin.id)
158+
159+
140160
def sync_triggers():
141161
from sqlalchemy_searchable import sync_trigger
142162

0 commit comments

Comments
 (0)