import 'package:codebrowser_dart/process.dart'; import 'package:codebrowser_dart/project.dart'; import 'dart:io'; void printUsageAndExit() { print("Usage: ./generator [project_name:version] [source_dir] [output dir]"); exit(1); } String monthShortName(int month) { List months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]; return months[month - 1]; } void main(List arguments) async { if (arguments.length < 3) { printUsageAndExit(); } final projectNameAndInfo = arguments.first.split(':'); if (projectNameAndInfo.length != 2) { print("Error: Project must be specified as PROJECT:VERSION"); printUsageAndExit(); } final projectName = projectNameAndInfo[0]; final projectVersion = projectNameAndInfo[1]; final dir = Directory.fromUri(Uri.parse(arguments[1])); if (!dir.existsSync()) { print("Error: The source directory you provided doesn't exist"); exit(1); } final outDir = Directory.fromUri(Uri.parse(arguments[2])); if (!outDir.existsSync()) { outDir.createSync(); } final dateTime = DateTime.now(); String date = "${dateTime.year}-${monthShortName(dateTime.month)}-${dateTime.day}"; final project = Project(name: projectName, version: projectVersion, date: date); final sw = Stopwatch(); sw.start(); await processDirectory( project: project, sourceDir: dir.absolute, outputDir: outDir.absolute, ); print("Generation finished, took: ${sw.elapsed}"); }