performUpdate method

Future<UpdateResult> performUpdate()

Perform the self-update by running dart pub global activate.

Implementation

Future<UpdateResult> performUpdate() async {
  try {
    final result = await _runProcess('dart', [
      'pub',
      'global',
      'activate',
      packageName,
    ]);

    if (result.exitCode == 0) {
      return UpdateResult(
        success: true,
        message:
            'Successfully updated $packageName. '
            'Run `zorphy_cli --version` to verify.',
      );
    } else {
      return UpdateResult(
        success: false,
        exitCode: result.exitCode,
        message:
            '`dart pub global activate $packageName` failed.\n'
            '${result.stderr}',
      );
    }
  } catch (e) {
    return UpdateResult(
      success: false,
      message: 'Failed to run update command: $e',
    );
  }
}