run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
void run() {
final ftRun = runner as FtRunner;
final v = ftRun.ftVerbose;
final logger = ftRun.ftLogger;
late final String source;
late final String type;
late final bool matched;
try {
_setFtRunner(ftRun, globalResults);
source = getSource(ftRun.ftConfig, globalResults,
aRes: argResults, env: ftRun.ftEnv);
type = getOpiton('$name.type', ftRun.ftConfig,
aRes: argResults, defaultTo: typeDefault, datalist: typeNames);
matched = getFlag('$name.matched', ftRun.ftConfig,
aRes: argResults, defaultTo: true);
} on UsageException catch (e, s) {
logger.stderr('e, $name.run, $e\n $s');
rethrow;
} catch (e, s) {
logger.stderr('e, $name.run, $e\n $s');
throw UsageException(e.toString(), '');
}
if (v) _traceGlobalParam(logger, ftRun, source);
final action = BasicPathAction(
source,
pattern: ftRun.ftPattern,
excludes: ftRun.ftExcludes,
mimeOverrides: ftRun.ftMimeOverrides,
mimeIncludes: ftRun.ftMimeIncludes,
mimeExcludes: ftRun.ftMimeExcludes,
sizes: ftRun.ftSizes,
times: ftRun.ftTimes,
env: ftRun.ftEnv,
verbose: ftRun.ftVerbose,
cancelOnError: ftRun.ftErrExit,
statTimeType: StatTimeType.values.byName(ftRun.ftTimeType),
)
..logger = logger
..fmtFields = ftRun.ftFields;
final err = action.validator();
if (err.isNotEmpty) throw UsageException('err: chk, $err', '');
action.argErr = err;
final fseType = switch (type) {
'file' => FileSystemEntityType.file,
'directory' => FileSystemEntityType.directory,
'link' => FileSystemEntityType.link,
'unixDomainSock' => FileSystemEntityType.unixDomainSock,
'pipe' => FileSystemEntityType.pipe,
_ => FileSystemEntityType.notFound,
};
if (v) logger.trace('i, type:$fseType, matched:$matched.');
action.list(matched: matched, fseType: fseType);
// end run
}