handleArgs function

PicositeConfig handleArgs(
  1. dynamic arguments,
  2. PicositeConfig config
)

Implementation

PicositeConfig handleArgs(arguments, PicositeConfig config) {
  final ArgParser argParser = buildParser();
  try {
    final ArgResults results = argParser.parse(arguments);
    bool verbose = false;

    // Process the parsed arguments.
    if (results.wasParsed('preview')) {
      config = config.copyWith(preview: true);
    }

    if (results.wasParsed('site')) {
      config = config.copyWith(sitePath: results.option("site"));
    }

    if (results.wasParsed('includes')) {
      config = config.copyWith(includesPath: results.option("includes"));
    }

    if (results.wasParsed('assets')) {
      config = config.copyWith(assetsPath: results.option("assets"));
    }

    if (results.wasParsed('templates')) {
      config = config.copyWith(templatesPath: results.option("templates"));
    }

    if (results.wasParsed('help')) {
      printUsage(argParser);
      exit(0);
    }
    if (results.wasParsed('version')) {
      print('picosite version: $version');
      exit(0);
    }
    if (results.wasParsed('verbose')) {
      verbose = true;
    }

    // Act on the arguments provided.
    print('Positional arguments: ${results.rest}');
    if (verbose) {
      print('[VERBOSE] All arguments: ${results.arguments}');
    }
  } on FormatException catch (e) {
    // Print usage information if an invalid argument was provided.
    print(e.message);
    print('');
    printUsage(argParser);
  }
  return config;
}