installPlugin method

Future<PluginOperationResult> installPlugin(
  1. String plugin, [
  2. PluginScope scope = PluginScope.user
])

CLI: Install a plugin.

Implementation

Future<PluginOperationResult> installPlugin(
  String plugin, [
  PluginScope scope = PluginScope.user,
]) async {
  try {
    writeOutput('Installing plugin "$plugin"...');
    final result = await operations.installPlugin(plugin, scope);

    if (!result.success) {
      writeError('Failed to install plugin "$plugin": ${result.message}');
      _logFailure('install', plugin);
      return result;
    }

    writeOutput('Successfully installed: ${result.pluginId}');
    final id = parsePluginIdentifier(result.pluginId ?? plugin);
    logEvent('tengu_plugin_installed_cli', {
      ...buildPluginTelemetryFields(
        id.name,
        id.marketplace,
        getManagedPluginNames(),
      ).toMap(),
      'scope': (result.scope ?? scope).name,
      'install_source': 'cli-explicit',
    });

    return result;
  } catch (e) {
    _handleError(e, 'install', plugin);
    return PluginOperationResult(
      success: false,
      message: e.toString(),
    );
  }
}