uninstallPlugin method

Future<PluginCliResult> uninstallPlugin(
  1. String plugin, [
  2. PluginScope scope = PluginScope.user,
  3. bool keepData = false
])

CLI: Uninstall a plugin.

Implementation

Future<PluginCliResult> uninstallPlugin(
  String plugin, [
  PluginScope scope = PluginScope.user,
  bool keepData = false,
]) async {
  try {
    final result = await operations.uninstallPlugin(plugin, scope, !keepData);
    if (!result.success) {
      return PluginCliResult(success: false, message: result.message);
    }

    final id = parsePluginIdentifier(result.pluginId ?? plugin);
    logEvent('tengu_plugin_uninstalled_cli', {
      ...buildPluginTelemetryFields(
        id.name,
        id.marketplace,
        getManagedPluginNames(),
      ).toMap(),
      'scope': (result.scope ?? scope).name,
    });

    return PluginCliResult(success: true, message: result.message);
  } catch (e) {
    _handleError(e, 'uninstall', plugin);
    return PluginCliResult(success: false, message: e.toString());
  }
}