stepFor method

  1. @override
CommandStep? stepFor(
  1. FormulaAction action,
  2. String osName
)
override

Returns the command template for action on osName, or null if the action is unsupported on that platform.

Implementation

@override
CommandStep? stepFor(FormulaAction action, String osName) {
  switch (osName) {
    case 'macos':
      switch (action) {
        case FormulaAction.install:
          return const CommandStep('brew', ['install', 'dart-sdk']);
        case FormulaAction.update:
          return const CommandStep('brew', ['upgrade', 'dart-sdk']);
        case FormulaAction.uninstall:
          return const CommandStep('brew', ['uninstall', 'dart-sdk']);
        case FormulaAction.verify:
          return verifyStep;
        default:
          return null;
      }
    case 'linux':
      switch (action) {
        case FormulaAction.install:
          return const CommandStep('sh', [
            '-c',
            'apt-get update && apt-get install -y dart',
          ]);
        case FormulaAction.update:
          return const CommandStep('sh', [
            '-c',
            'apt-get update && apt-get install -y --only-upgrade dart',
          ]);
        case FormulaAction.uninstall:
          return const CommandStep('apt-get', ['remove', '-y', 'dart']);
        case FormulaAction.verify:
          return verifyStep;
        default:
          return null;
      }
    default:
      return null;
  }
}