DeployCommand constructor

DeployCommand(
  1. TerminalOutput _output, {
  2. DeploymentManager? manager,
  3. ReleaseRecoveryManager? recoveryManager,
})

Implementation

DeployCommand(
  this._output, {
  DeploymentManager? manager,
  ReleaseRecoveryManager? recoveryManager,
})  : _manager = manager ?? DeploymentManager(),
      _recoveryManager = recoveryManager,
      _argParser = ArgParser() {
  _argParser.addOption(
    'path',
    abbr: 'p',
    help: 'Target Flutter project directory path.',
    defaultsTo: '.',
  );
  _argParser.addOption(
    'platform',
    defaultsTo: 'android',
    help: 'Target platform for store deployment (android, ios, all).',
    allowed: ['android', 'ios', 'all'],
  );
  _argParser.addOption(
    'artifact',
    abbr: 'a',
    help: 'Path to pre-built artifact file (.aab for Android, .ipa for iOS).',
  );
  _argParser.addOption(
    'lane',
    abbr: 'l',
    help: 'Fastlane lane name to execute (e.g. internal, testflight, beta).',
  );
  _argParser.addOption(
    'environment',
    abbr: 'e',
    help: 'Target environment (e.g. production, staging, development).',
  );
  _argParser.addOption(
    'env',
    help: 'Alias for --environment.',
  );
  _argParser.addOption(
    'flavor',
    help: 'Target build flavor (e.g. production).',
  );
  _argParser.addFlag(
    'retry',
    help:
        'Safely retry a previously failed deployment using validated artifacts.',
    negatable: false,
  );
  _argParser.addFlag(
    'dry-run',
    abbr: 'd',
    help: 'Preview deployment execution plan without executing Fastlane.',
    negatable: false,
  );
}