OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012, the Dart project authors. | 2 * Copyright (c) 2012, the Dart project authors. |
3 * | 3 * |
4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u
se this file except | 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u
se this file except |
5 * in compliance with the License. You may obtain a copy of the License at | 5 * in compliance with the License. You may obtain a copy of the License at |
6 * | 6 * |
7 * http://www.eclipse.org/legal/epl-v10.html | 7 * http://www.eclipse.org/legal/epl-v10.html |
8 * | 8 * |
9 * Unless required by applicable law or agreed to in writing, software distribut
ed under the License | 9 * Unless required by applicable law or agreed to in writing, software distribut
ed under the License |
10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K
IND, either express | 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K
IND, either express |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 showVersion(options, System.out); | 63 showVersion(options, System.out); |
64 System.exit(0); | 64 System.exit(0); |
65 } | 65 } |
66 | 66 |
67 if (options.getDartSdkPath() == null) { | 67 if (options.getDartSdkPath() == null) { |
68 System.out.println(PROGRAM_NAME + ": no Dart SDK found."); | 68 System.out.println(PROGRAM_NAME + ": no Dart SDK found."); |
69 showUsage(options, System.out); | 69 showUsage(options, System.out); |
70 System.exit(1); | 70 System.exit(1); |
71 } | 71 } |
72 | 72 |
| 73 if (!options.getDartSdkPath().exists()) { |
| 74 System.out.println(PROGRAM_NAME + ": invalid Dart SDK path: " + options.ge
tDartSdkPath()); |
| 75 showUsage(options, System.out); |
| 76 System.exit(1); |
| 77 } |
| 78 |
73 if (options.getSdkIndexLocation() != null) { | 79 if (options.getSdkIndexLocation() != null) { |
74 AnalyzerImpl analyzer = new AnalyzerImpl(options); | 80 AnalyzerImpl analyzer = new AnalyzerImpl(options); |
75 if (analyzer.createSdkIndex()) { | 81 if (analyzer.createSdkIndex()) { |
76 System.exit(0); | 82 System.exit(0); |
77 } else { | 83 } else { |
78 System.exit(1); | 84 System.exit(1); |
79 } | 85 } |
80 } | 86 } |
81 | 87 |
82 if (options.getRunTests()) { | 88 if (options.getRunTests()) { |
83 runTests(options); | 89 runTests(options); |
84 System.exit(0); | 90 System.exit(0); |
85 } | 91 } |
86 | 92 |
87 String sourceFilePath = options.getSourceFile(); | 93 try { |
| 94 final AnalyzerImpl analyzer = new AnalyzerImpl(options); |
88 | 95 |
89 if (sourceFilePath == null) { | |
90 System.out.println(PROGRAM_NAME + ": no source files were specified."); | |
91 showUsage(options, System.out); | |
92 System.exit(1); | |
93 } | |
94 | |
95 try { | |
96 if (options.shouldBatch()) { | 96 if (options.shouldBatch()) { |
97 BatchRunner.runAsBatch(args, new BatchRunnerInvocation() { | 97 BatchRunner.runAsBatch(args, new BatchRunnerInvocation() { |
98 @Override | 98 @Override |
99 public ErrorSeverity invoke(String[] lineArgs) throws Throwable { | 99 public ErrorSeverity invoke(String[] lineArgs) throws Throwable { |
100 AnalyzerOptions compilerOptions = AnalyzerOptions.createFromArgs(lin
eArgs); | 100 AnalyzerOptions compilerOptions = AnalyzerOptions.createFromArgs(lin
eArgs); |
101 | 101 |
102 if (compilerOptions.getDartSdkPath() == null) { | 102 if (compilerOptions.getDartSdkPath() == null) { |
103 compilerOptions.setDartSdkPath(options.getDartSdkPath()); | 103 compilerOptions.setDartSdkPath(options.getDartSdkPath()); |
104 } | 104 } |
105 | 105 |
106 return runAnalyzer(compilerOptions); | 106 return runAnalyzer(analyzer, compilerOptions); |
107 } | 107 } |
108 }); | 108 }); |
109 } else { | 109 } else { |
110 ErrorSeverity result = runAnalyzer(options); | 110 String sourceFilePath = options.getSourceFile(); |
| 111 |
| 112 if (sourceFilePath == null) { |
| 113 System.out.println(PROGRAM_NAME + ": no source files were specified.")
; |
| 114 showUsage(options, System.out); |
| 115 System.exit(1); |
| 116 } |
| 117 |
| 118 ErrorSeverity result = runAnalyzer(analyzer, options); |
111 | 119 |
112 if (result != ErrorSeverity.NONE) { | 120 if (result != ErrorSeverity.NONE) { |
113 System.exit(result.ordinal()); | 121 System.exit(result.ordinal()); |
114 } | 122 } |
115 } | 123 } |
116 } catch (Throwable t) { | 124 } catch (Throwable t) { |
117 t.printStackTrace(); | 125 t.printStackTrace(); |
118 crashAndExit(); | 126 crashAndExit(); |
119 } | 127 } |
120 } | 128 } |
121 | 129 |
122 protected static void crashAndExit() { | 130 protected static void crashAndExit() { |
123 // Our test scripts look for 253 to signal a "crash". | 131 // Our test scripts look for 253 to signal a "crash". |
124 | 132 |
125 System.exit(253); | 133 System.exit(253); |
126 } | 134 } |
127 | 135 |
128 /** | 136 /** |
129 * Invoke the compiler to build all of the files passed on the command line | 137 * Invoke the compiler to build all of the files passed on the command line |
130 * | 138 * |
131 * @param analyzerOptions parsed command line arguments | 139 * @param analyzerOptions parsed command line arguments |
132 * @return {@code true} on success, {@code false} on failure. | 140 * @return {@code true} on success, {@code false} on failure. |
133 */ | 141 */ |
134 protected static ErrorSeverity runAnalyzer(AnalyzerOptions options) throws IOE
xception, | 142 protected static ErrorSeverity runAnalyzer(AnalyzerImpl analyzer, AnalyzerOpti
ons options) |
135 AnalysisException { | 143 throws IOException, AnalysisException { |
136 AnalyzerImpl analyzer = new AnalyzerImpl(options); | |
137 | |
138 File sourceFile = new File(options.getSourceFile()); | 144 File sourceFile = new File(options.getSourceFile()); |
139 | 145 |
140 if (!sourceFile.exists()) { | 146 if (!sourceFile.exists()) { |
141 System.out.println(PROGRAM_NAME + ": file not found: " + sourceFile); | 147 System.out.println(PROGRAM_NAME + ": file not found: " + sourceFile); |
142 System.out.println(); | 148 System.out.println(); |
143 showUsage(options, System.out); | 149 showUsage(options, System.out); |
144 return ErrorSeverity.ERROR; | 150 return ErrorSeverity.ERROR; |
145 } | 151 } |
146 | 152 |
147 ErrorFormatter formatter = new ErrorFormatter(System.out, options); | 153 ErrorFormatter formatter = new ErrorFormatter(System.out, options); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 out.println(" 1: Analysis warnings encountered"); | 213 out.println(" 1: Analysis warnings encountered"); |
208 out.println(" 2: Analysis errors encountered"); | 214 out.println(" 2: Analysis errors encountered"); |
209 out.println(); | 215 out.println(); |
210 } | 216 } |
211 | 217 |
212 private static void showVersion(AnalyzerOptions options, PrintStream out) { | 218 private static void showVersion(AnalyzerOptions options, PrintStream out) { |
213 out.println(PROGRAM_NAME + " version " + getBuildVersion()); | 219 out.println(PROGRAM_NAME + " version " + getBuildVersion()); |
214 } | 220 } |
215 | 221 |
216 } | 222 } |
OLD | NEW |