update static method
Implementation
static Future<void> update([
bool isGit = false,
bool forceUpdate = false,
]) async {
isGit = GetCli.arguments.contains('--git');
forceUpdate = GetCli.arguments.contains('-f');
if (!isGit && !forceUpdate) {
var versionInPubDev =
await PubDevApi.getLatestVersionFromPackage('sm_get_cli');
var versionInstalled = await PackageVersion.getVersionCli(
disableLog: true,
);
if (versionInstalled == versionInPubDev) {
return LogService.info(
Translation(LocaleKeys.info_cli_last_version_already_installed.tr)
.toString(),
);
}
}
LogService.info('Upgrading sm_get_cli …');
try {
var result = await Process.run('which', ['flutter']);
final flutterPath = result.stdout.toString().trim();
var hasFvm = false;
if (flutterPath.contains('fvm')) {
LogService.info(
'fvm exists, will use fvm flutter to upgrade sm_get_cli',
);
hasFvm = true;
}
if (flutterPath.contains('flutter')) {
if (isGit) {
await run(
'${hasFvm ? 'fvm ' : ''}flutter pub global activate -sgit https://github.com/sm-packages/sm_get_cli/',
verbose: true,
);
} else {
await run(
'${hasFvm ? 'fvm ' : ''}flutter pub global activate sm_get_cli',
verbose: true,
);
}
} else {
if (isGit) {
await run(
'${hasFvm ? 'fvm ' : ''}flutter pub global activate -sgit https://github.com/sm-packages/sm_get_cli/',
verbose: true,
);
} else {
await run(
'${hasFvm ? 'fvm ' : ''}flutter pub global activate sm_get_cli',
verbose: true,
);
}
}
return LogService.success(LocaleKeys.sucess_update_cli.tr);
} on Exception catch (err) {
LogService.info(err.toString());
return LogService.error(LocaleKeys.error_update_cli.tr);
}
}