installPlugin method
Future<PluginOperationResult>
installPlugin(
- String plugin, [
- 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(),
);
}
}