]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/GuidChkTask.java
Fixed EDKT102;
[mirror_edk2.git] / Tools / Source / FrameworkTasks / org / tianocore / framework / tasks / GuidChkTask.java
CommitLineData
878ddf1f 1/** @file\r
2 GuidChkTask class.\r
3\r
4 GuidChkTask is to call GuidChk.exe to generate Section.\r
5 \r
6 Copyright (c) 2006, Intel Corporation\r
7 All rights reserved. This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which accompanies this distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11 \r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14 \r
15**/\r
16package org.tianocore.framework.tasks;\r
17import java.io.BufferedReader;\r
18import java.io.InputStreamReader;\r
19import java.io.PrintWriter;\r
20import java.io.File;\r
21\r
22import org.apache.tools.ant.BuildException;\r
23import org.apache.tools.ant.Project;\r
24import org.apache.tools.ant.Task;\r
25\r
26/**\r
27 GuidChkTask\r
28 \r
29 GuidChkTask is to call GuidChk.exe to generate Section.\r
30 \r
31**/\r
32public class GuidChkTask extends Task implements EfiDefine{\r
33 /**\r
34 * GuidChk task class\r
35 * class member\r
36 * -exDir : directory name of exclusion searching \r
37 * -exFile : file name of exclusion searching\r
38 * -exExt : extension name of exclusion searching\r
39 * -exSubDir: extesnion name of sub dir which excluded searching\r
40 * -outFile : out put file wrote internal GUID+basename list\r
41 * -chkGui : check for duplicate guids\r
42 * -chkSign : check for duplicate signatures\r
43 * -printGuiDef : if set will print guid+defined symbol name\r
44 * -printAllGuid: if set will print all GUIDS found\r
45 * -outPut : redirection file name\r
46 * -fos : out put redirect to this file \r
47 * \r
48 */\r
49 ///\r
50 /// Directory name of exclusion searching \r
51 ///\r
52 private String exDir = "";\r
53 ///\r
54 /// File name of exclusion searching.\r
55 ///\r
56 private String exFile = "";\r
57 ///\r
58 /// Extension name of exclusion searching.\r
59 ///\r
60 private String exExt = "";\r
61 ///\r
62 /// Extesnion name of sub dir which excluded searching.\r
63 ///\r
64 private String exSubDir = "";\r
65 ///\r
66 /// Out put file wrote internal GUID+basename list\r
67 ///\r
68 private String outFile = "";\r
69 ///\r
70 /// Check for duplicate guids.\r
71 ///\r
72 private String chkGui = "";\r
73 ///\r
74 /// Check for duplicate signatures\r
75 ///\r
76 private String chkSign = "";\r
77 ///\r
78 /// If set will print guid+defined symbol name\r
79 ///\r
80 private String printGuiDef = "";\r
81 ///\r
82 /// If set will print all GUIDS found\r
83 ///\r
84 private String printAllGuid = "";\r
85 ///\r
86 /// redirection file name.\r
87 ///\r
88 private String outPut = "";\r
89 ///\r
90 /// out put redirect to this file.\r
91 ///\r
92 protected PrintWriter fos = null;\r
93 \r
94 //\r
95 // overload class execute method\r
96 // \r
97 public void execute() throws BuildException {\r
98 Project project = this.getOwningTarget().getProject();\r
2da8968b 99 String path = project.getProperty("env.FRAMEWORK_TOOLS_PATH");\r
878ddf1f 100 String command;\r
101 if (path == null) {\r
102 command = "GuidChk";\r
103 } else {\r
104 command = path + File.separatorChar + "GuidChk";\r
105 }\r
106 String argument = exDir +\r
107 exFile +\r
108 exExt +\r
109 exSubDir +\r
110 outFile +\r
111 chkGui +\r
112 chkSign +\r
113 printGuiDef + \r
114 printAllGuid; \r
115 try {\r
116 System.out.println(command + " " + argument);\r
117 //\r
118 // execute command line \r
119 //\r
120 Process proc = Runtime.getRuntime().exec(command + "" + argument);\r
121 //\r
122 // if set output, redirect out put to output file, else print output to screen\r
123 // \r
124 if ( !this.outPut.equals("")) {\r
125 fos = new PrintWriter(this.outPut);\r
126 BufferedReader bin = new BufferedReader(new InputStreamReader(proc.getInputStream()));\r
127 String line = bin.readLine();\r
128 while (line != null ){ \r
129 fos.println(line);\r
130 line = bin.readLine();\r
131 }\r
132 fos.close();\r
133 }\r
134 else {\r
135 BufferedReader bin = new BufferedReader(new InputStreamReader(proc.getInputStream()));\r
136 String line = bin.readLine();\r
137 System.out.println(line);\r
138 while (line != null ){\r
139 System.out.print(line);\r
140 line = bin.readLine();\r
141 } \r
142 } \r
143 System.out.println("GuidChkTask Success!");\r
144 } catch (Exception e) {\r
145 System.out.println("GuidChkTask failed!");\r
146 System.out.println(e.getMessage());\r
147 \r
148 }\r
149 }\r
150 /**\r
151 getChkGui\r
152 \r
153 This function is to get the string of flag of ChkGui\r
154 \r
155 @return string of flag of ChkGui\r
156 **/\r
157 public String getChkGui() {\r
158 return chkGui;\r
159 }\r
160 \r
161 /**\r
162 setChkGui\r
163 \r
164 This function is to set chkGui\r
165 \r
166 @param chkGui set class member of chkGui\r
167 **/\r
168 public void setChkGui(String chkGui) {\r
169 if (chkGui.equals("on")||(chkGui.equals("ON"))){\r
170 this.chkGui = " -g ";\r
171 }\r
172 \r
173 }\r
174 \r
175 /**\r
176 getChkSign\r
177 \r
178 This function is to get chkSign\r
179 \r
180 @return chkSign\r
181 **/\r
182 public String getChkSign() {\r
183 return chkSign;\r
184 }\r
185 \r
186 /**\r
187 setChkSign\r
188 \r
189 This function is to set class member of chkSign\r
190 * @param chkSign\r
191 */\r
192 public void setChkSign(String chkSign) {\r
193 if (chkSign.equals("on")|| chkSign.equals("ON")){\r
194 this.chkSign = " -s ";\r
195 } \r
196 }\r
197 /**\r
198 getExDir\r
199 \r
200 This function is to get class member of exDir\r
201 \r
202 @return exDir\r
203 **/\r
204 public String getExDir() {\r
205 return exDir;\r
206 }\r
207 \r
208 /**\r
209 setExDir\r
210 \r
211 This function is to set class member of exDir\r
212 \r
213 @param exDir\r
214 **/\r
215 public void setExDir(String exDir) {\r
216 this.exDir = " -d " + exDir;\r
217 }\r
218 \r
219 /**\r
220 getExExt\r
221 \r
222 This function is to get class member of exExt\r
223 \r
224 @return exExt\r
225 **/\r
226 public String getExExt() {\r
227 return exExt;\r
228 }\r
229 \r
230 /**\r
231 setExExt\r
232 \r
233 This function is to set class member of exExt\r
234 @param exExt\r
235 **/\r
236 public void setExExt(String exExt) {\r
237 this.exExt = " -e " + exExt;\r
238 }\r
239 \r
240 /**\r
241 getExFile\r
242 \r
243 This function is to get class member of exFile\r
244 @return exFile\r
245 **/\r
246 public String getExFile() {\r
247 return exFile;\r
248 }\r
249 \r
250 /**\r
251 setExFile\r
252 \r
253 This function is to set class member of exFile.\r
254 \r
255 @param exFile\r
256 **/\r
257 public void setExFile(String exFile) {\r
258 this.exFile = " -f " + exFile;\r
259 }\r
260 \r
261 /**\r
262 getExSubDir\r
263 \r
264 This function is to get class member of exSubDir\r
265 \r
266 @return exSubDir\r
267 **/\r
268 public String getExSubDir() {\r
269 return exSubDir;\r
270 }\r
271 \r
272 /**\r
273 setExSubDir\r
274 \r
275 This function is to set class member of exSubDir.\r
276 @param exSubDir\r
277 **/\r
278 public void setExSubDir(String exSubDir) {\r
279 this.exSubDir = " -u " + exSubDir;\r
280 }\r
281 \r
282 /**\r
283 getOutFile\r
284 \r
285 This function is to get outFile\r
286 \r
287 @return outFile\r
288 **/\r
289 public String getOutFile() {\r
290 return outFile;\r
291 }\r
292 /**\r
293 * set class member of outFile\r
294 * @param outFile\r
295 */\r
296 public void setOutFile(String outFile) {\r
297 this.outFile = " -b " + outFile;\r
298 }\r
299 /**\r
300 getPrintGuidDef\r
301 \r
302 This function is to get printGuidDef\r
303 \r
304 @return flage of printing (guid+defined symbol name)\r
305 **/\r
306 public String getPrintGuiDef() {\r
307 return printGuiDef;\r
308 }\r
309 \r
310 \r
311 /**\r
312 setPrintGuidDef\r
313 \r
314 This function is to set class member of printGuiDef.\r
315 @param printGuiDef\r
316 **/\r
317 public void setPrintGuiDef(String printGuiDef) {\r
318 if (printGuiDef.equals("on")|| printGuiDef.equals("ON")){\r
319 this.printGuiDef = " -x ";\r
320 }\r
321 \r
322 }\r
323 \r
324 /**\r
325 getOutput\r
326 \r
327 This function is to get output\r
328 \r
329 @return name of outPut file\r
330 **/\r
331 public String getOutPut() {\r
332 return outPut;\r
333 }\r
334 \r
335 /**\r
336 setOutPut\r
337 \r
338 This function is to set class member of outPut.\r
339 @param outPut\r
340 **/\r
341 public void setOutPut(String outPut) {\r
342 this.outPut = outPut;\r
343 }\r
344 \r
345 /**\r
346 getPrintAllGuid\r
347 \r
348 This function is to get printAllGuid\r
349 @return printAllGuid\r
350 **/\r
351 public String getPrintAllGuid() {\r
352 return printAllGuid;\r
353 }\r
354 \r
355 /**\r
356 setPrintAllGuid\r
357 \r
358 This function is to set class member of printAllGuid.\r
359 @param printAllGuid\r
360 **/\r
361 public void setPrintAllGuid(String printAllGuid) {\r
362 if (printAllGuid.equals("on")||printAllGuid.equals("ON")) {\r
363 this.printAllGuid = " -p ";\r
364 } \r
365 }\r
366}\r
367\r