@@ -6,26 +6,18 @@ import 'package:add_imports/src/function_or_null.dart';
66import 'package:collection/collection.dart' ;
77
88void main (List <String > arguments) {
9- final args = (() => Args .parse (arguments)).orNull ();
10- if (args == null ) {
11- print (Args .usage);
12-
13- return ;
14- }
9+ final state = init (arguments);
10+ if (state == null ) return ;
1511
16- final config = (() => Config .fromYaml (
17- File (args.configpath).readAsStringSync (),
18- )).orNull ();
12+ final (sourceFile, config) = state;
1913
20- if (config == null ) {
21- print ('Error while reading config from "${args .configpath }"' );
14+ final sourceString = sourceFile.readAsStringSync.orNull ();
15+ if (sourceString == null ) {
16+ print ('Error while reading source from "${sourceFile .path }"' );
2217
2318 return ;
2419 }
2520
26- final sourceFile = File (args.filename);
27- final sourceString = sourceFile.readAsStringSync ();
28-
2921 final classes = RegExp (r'new self.([A-Za-z]+)\(' )
3022 .allMatches (sourceString)
3123 .map ((e) => e.group (1 ))
@@ -57,5 +49,32 @@ void main(List<String> arguments) {
5749 sourceString,
5850 ].join ('\n ' );
5951
60- sourceFile.writeAsStringSync (newSource);
52+ try {
53+ sourceFile.writeAsStringSync (newSource);
54+ } catch (_) {
55+ print ('Error while writing new source to "${sourceFile .path }"' );
56+
57+ return ;
58+ }
59+ }
60+
61+ (File , Config )? init (List <String > arguments) {
62+ final args = (() => Args .parse (arguments)).orNull ();
63+ if (args == null ) {
64+ print (Args .usage);
65+
66+ return null ;
67+ }
68+
69+ final config = (() => Config .fromYaml (
70+ File (args.configpath).readAsStringSync (),
71+ )).orNull ();
72+
73+ if (config == null ) {
74+ print ('Error while reading config from "${args .configpath }"' );
75+
76+ return null ;
77+ }
78+
79+ return (File (args.filename), config);
6180}
0 commit comments