installGlobalPackage method
Install a global package.
Implementation
Future<AutoUpdateInstallStatus> installGlobalPackage({
String? specificVersion,
}) async {
if (!await acquireLock()) {
return AutoUpdateInstallStatus.inProgress;
}
try {
final permissions = await checkGlobalInstallPermissions();
if (!permissions.hasPermissions) {
return AutoUpdateInstallStatus.noPermissions;
}
final packageSpec = specificVersion != null
? '$packageUrl@$specificVersion'
: packageUrl;
final packageManager = isRunningWithBun ? 'bun' : 'npm';
final result = await _runCommand(packageManager, [
'install',
'-g',
packageSpec,
]);
if (result.exitCode != 0) {
return AutoUpdateInstallStatus.installFailed;
}
updateStatus.value = AutoUpdateInstallStatus.success;
return AutoUpdateInstallStatus.success;
} finally {
await releaseLock();
}
}