// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:io'; import 'package:args/args.dart' as argslib; import 'package:meta/meta.dart'; void exitWithError(String errorMessage) { if (errorMessage == null) return; stderr.writeln('Fatal Error: $errorMessage'); exit(1); } void checkCwdIsRepoRoot(String commandName) { final bool isRepoRoot = new Directory('.git').existsSync(); if (!isRepoRoot) { exitWithError( '$commandName must be run from the root of the Flutter repository. The ' 'current working directory is: ${Directory.current.path}' ); } } GeneratorOptions parseArgs(List rawArgs) { final argslib.ArgParser argParser = new argslib.ArgParser() ..addFlag( 'overwrite', abbr: 'w', defaultsTo: false, ); final argslib.ArgResults args = argParser.parse(rawArgs); final bool writeToFile = args['overwrite']; return new GeneratorOptions(writeToFile: writeToFile); } class GeneratorOptions { GeneratorOptions({ @required this.writeToFile, }); final bool writeToFile; }