create static method

CloudCliCommandRunner create({
  1. required CommandLogger logger,
  2. Version? version,
  3. CloudCliServiceProvider? serviceProvider,
  4. OnAnalyticsEvent? onAnalyticsEvent,
  5. OnRunContextResolved? onRunContextResolved,
  6. OnErrorReport? onErrorReport,
  7. bool enableAnalyticsForAllEnvs = false,
  8. bool? adminUserMode,
  9. CliUpdater? cliUpdater,
  10. Version? attemptedUpdateVersion,
  11. String? baseCommand,
})

Implementation

static CloudCliCommandRunner create({
  required final CommandLogger logger,
  final Version? version,
  final CloudCliServiceProvider? serviceProvider,
  final OnAnalyticsEvent? onAnalyticsEvent,
  final OnRunContextResolved? onRunContextResolved,
  final OnErrorReport? onErrorReport,
  final bool enableAnalyticsForAllEnvs = false,
  bool? adminUserMode,
  final CliUpdater? cliUpdater,
  final Version? attemptedUpdateVersion,
  String? baseCommand,
}) {
  adminUserMode ??=
      bool.tryParse(
        Platform.environment['SERVERPOD_CLOUD_ADMIN_USER_MODE'] ?? 'false',
        caseSensitive: false,
      ) ??
      false;

  baseCommand ??= Platform.environment[baseCommandEnvName];
  final resolvedBaseCommand = baseCommand == null || baseCommand.isEmpty
      ? defaultBaseCommand
      : baseCommand;

  final runner = CloudCliCommandRunner._(
    logger: logger,
    version: version ?? cliVersion,
    baseCommand: resolvedBaseCommand,
    serviceProvider: serviceProvider ?? CloudCliServiceProvider(),
    enableAnalyticsForAllEnvs: enableAnalyticsForAllEnvs,
    adminUserMode: adminUserMode,
    cliUpdater: cliUpdater ?? const DartCliUpdater(),
    attemptedUpdateVersion:
        attemptedUpdateVersion ?? attemptedCliUpdateVersion(),
    onRunContextResolved: onRunContextResolved,
    onErrorReport: onErrorReport,
    onAnalyticsEvent: onAnalyticsEvent,
    setLogLevel:
        ({
          final String? commandName,
          required final CommandRunnerLogLevel parsedLogLevel,
        }) => _configureLogLevel(
          logger: logger,
          parsedLogLevel: parsedLogLevel,
          commandName: commandName,
        ),
  );

  // Add commands (which may in turn have their own options and subcommands)
  runner.addCommands([
    runner._versionCommand,
    CloudAuthCommand(logger: logger),
    CloudMeCommand(logger: logger),
    CloudProjectCommand(logger: logger),
    CloudContextCommand(logger: logger),
    CloudDeployCommand(logger: logger),
    CloudVariableCommand(logger: logger),
    CloudCustomDomainCommand(logger: logger),
    CloudLogCommand(logger: logger),
    CloudStatusCommand(logger: logger),
    CloudDeploymentsCommand(logger: logger),
    CloudPasswordCommand(logger: logger),
    CloudDbCommand(logger: logger),
    CloudLaunchCommand(logger: logger),
    CliUserSettingsCommand(logger: logger),
    if (adminUserMode) CloudAdminCommand(logger: logger, hidden: false),
  ]);

  return runner;
}