ApplyCommand constructor

ApplyCommand({
  1. PlanStore? planStore,
  2. DateTime clock()?,
  3. InputReader? inputReader,
  4. void out(
    1. String
    )?,
  5. void diagnostics(
    1. String
    )?,
  6. ProcessRunner? processRunner,
  7. AppliedHistoryStore? historyStore,
  8. ProjectValidator? validate,
  9. RecipeLockLoader? recipeLockLoader,
  10. ApplyObservationLoader? observationLoader,
  11. void releaseStaging(
    1. String
    )?,
  12. String? sessionLockBaseDir,
})

Implementation

ApplyCommand({
  PlanStore? planStore,
  DateTime Function()? clock,
  InputReader? inputReader,
  void Function(String)? out,
  void Function(String)? diagnostics,
  ProcessRunner? processRunner,
  AppliedHistoryStore? historyStore,
  ProjectValidator? validate,
  RecipeLockLoader? recipeLockLoader,
  this.observationLoader,
  void Function(String)? releaseStaging,
  this.sessionLockBaseDir,
}) : planStore = planStore ?? PlanStore(),
     clock = clock ?? DateTime.now,
     inputReader = inputReader ?? stdin.readLineSync,
     out = out ?? stdout.writeln,
     diagnostics = diagnostics ?? stderr.writeln,
     processRunner = processRunner ?? const ProcessRunner(),
     historyStore =
         historyStore ??
         AppliedHistoryStore(baseDir: (planStore ?? PlanStore()).baseDir),
     validate =
         validate ??
         ((root, commands) =>
             validateProject(projectRoot: root, commands: commands)),
     recipeLockLoader = recipeLockLoader ?? loadRecipeLock,
     releaseStagingCallback = releaseStaging ?? _releaseStaging {
  argParser
    ..addOption('approve', help: 'Plan ID explicitly approved for Apply.')
    ..addFlag('non-interactive', negatable: false)
    ..addOption('output', allowed: ['text', 'json']);
}