in webdev/lib/src/command/configuration.dart [264:397]
static Configuration fromArgs(ArgResults argResults,
{Configuration defaultConfiguration}) {
defaultConfiguration ??= Configuration();
if (argResults == null) return defaultConfiguration;
var enableInjectedClient =
argResults.options.contains(enableInjectedClientFlag)
? argResults[enableInjectedClientFlag] as bool
: defaultConfiguration.enableInjectedClient;
// Change the defaults when we have no injected client to disable all
// debugging features.
//
// After parsing we check these defaults weren't overridden as well.
if (!enableInjectedClient) {
defaultConfiguration = defaultConfiguration
._override(Configuration.noInjectedClientDefaults());
}
var chromeDebugPort = argResults.options.contains(chromeDebugPortFlag)
? int.parse(argResults[chromeDebugPortFlag] as String)
: defaultConfiguration.chromeDebugPort;
var debugExtension = argResults.options.contains(debugExtensionFlag)
? argResults[debugExtensionFlag] as bool
: defaultConfiguration.debugExtension;
var debug = argResults.options.contains(debugFlag)
? argResults[debugFlag] as bool
: defaultConfiguration.debug;
var hostname = argResults.options.contains(hostnameFlag)
? argResults[hostnameFlag] as String
: defaultConfiguration.hostname;
var tlsCertChain = argResults.options.contains(tlsCertChainFlag)
? argResults[tlsCertChainFlag] as String
: defaultConfiguration.tlsCertChain;
var tlsCertKey = argResults.options.contains(tlsCertKeyFlag)
? argResults[tlsCertKeyFlag] as String
: defaultConfiguration.tlsCertKey;
var launchApps = argResults.options.contains(launchAppOption) &&
argResults.wasParsed(launchAppOption)
? argResults[launchAppOption] as List<String>
: defaultConfiguration.launchApps;
var launchInChrome = argResults.options.contains(launchInChromeFlag) &&
argResults.wasParsed(launchInChromeFlag)
? argResults[launchInChromeFlag] as bool
// We want to default to launch chrome if the user provides just --debug
// and not --chrome-debug-port.
: debug &&
!(argResults.options.contains(launchInChromeFlag) &&
argResults.wasParsed(chromeDebugPortFlag))
? true
: defaultConfiguration.launchInChrome;
var logRequests = argResults.options.contains(logRequestsFlag)
? argResults[logRequestsFlag] as bool
: defaultConfiguration.logRequests;
var output = argResults.options.contains(outputFlag)
? argResults[outputFlag] as String
: defaultConfiguration.output;
String outputPath;
String outputInput;
if (output == 'NONE') {
// The empty string means build everything.
outputInput = '';
} else {
var splitOutput = output.split(':');
if (splitOutput.length == 1) {
// The empty string means build everything.
outputInput = '';
outputPath = output;
} else {
outputInput = splitOutput.first;
outputPath = splitOutput.skip(1).join(':');
}
}
var release = argResults.options.contains(releaseFlag)
? argResults[releaseFlag] as bool
: defaultConfiguration.release;
var requireBuildWebCompilers =
argResults.options.contains(requireBuildWebCompilersFlag)
? argResults[requireBuildWebCompilersFlag] as bool
: defaultConfiguration.requireBuildWebCompilers;
var enableExpressionEvaluation =
argResults.options.contains(enableExpressionEvaluationFlag)
? argResults[enableExpressionEvaluationFlag] as bool
: defaultConfiguration.enableExpressionEvaluation;
var verbose = argResults.options.contains(verboseFlag)
? argResults[verboseFlag] as bool
: defaultConfiguration.verbose;
var nullSafety = argResults.options.contains(nullSafetyFlag)
? argResults[nullSafetyFlag] as String
: defaultConfiguration.nullSafety;
var disableDds = argResults.options.contains(disableDdsFlag)
? argResults[disableDdsFlag] as bool
: defaultConfiguration.disableDds;
return Configuration(
autoRun: defaultConfiguration.autoRun,
chromeDebugPort: chromeDebugPort,
debugExtension: debugExtension,
debug: debug,
enableInjectedClient: enableInjectedClient,
hostname: hostname,
tlsCertChain: tlsCertChain,
tlsCertKey: tlsCertKey,
launchApps: launchApps,
launchInChrome: launchInChrome,
logRequests: logRequests,
output: output,
outputInput: outputInput,
outputPath: outputPath,
release: release,
reload: _parseReloadConfiguration(argResults),
requireBuildWebCompilers: requireBuildWebCompilers,
disableDds: disableDds,
enableExpressionEvaluation: enableExpressionEvaluation,
verbose: verbose,
nullSafety: nullSafety,
);
}