create method

  1. @override
Future<CommandContext> create(
  1. ArgResults? args
)
override

Implementation

@override
Future<CommandContext> create(final ArgResults? args) async
{
  final configName = args?.option('config');
  final envName = args?.option('env');
  final askPassword = args?.flag('password') ?? false;

  final config = await _getConfig(configName);
  final env = config.envs[envName]
    ?? config.envs['dev']
    ?? config.envs.values.firstOrNull
  ;
  if (env == null) {
    throw const CommandContextException(
      'Failed to find the env.\nPlease, specify a valid env in your config.'
    );
  }
  final password = _getPassword(env, askPassword);
  return CommandContext(config: config, env: env, password: password);
}