8f1c8b2f779a666e611532311d9557a99837b97d
2 File is ParseParameter class which is used to parse the validity of user's input args
5 Copyright (c) 2006, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 package org
.tianocore
.context
;
16 public class ParseParameter
{
20 * check the validity of user's input args
21 * @param args -- user's input
22 * @return true or false
24 public static boolean checkParameter(String
[] args
) {
27 TargetFile
.readFile();
31 if( (args
[0].compareToIgnoreCase("-h") == 0) || (args
[0].compareToIgnoreCase("/h") == 0) ||
32 (args
[0].compareToIgnoreCase("-?") == 0) || (args
[0].compareToIgnoreCase("/?") == 0) ||
33 (args
[0].compareToIgnoreCase("-help") == 0) || (args
[0].compareToIgnoreCase("/help") == 0) ){
34 HelpInfo
.outputUsageInfo();
37 if( args
[0].charAt(0) != '-' ){
38 System
.out
.printf("%s\n", "Error arguments! Please type \"ContextTool -h\" for helpinfo.");
41 for(int i
=0; i
<args
.length
; i
++){
42 if( (args
[i
].startsWith("-") &&
43 ((args
[i
].compareTo("-a") != 0) && (args
[i
].compareTo("-c") != 0) &&
44 (args
[i
].compareTo("-n") != 0) && (args
[i
].compareTo("-p") != 0) &&
45 (args
[i
].compareTo("-t") != 0) && (args
[i
].compareTo("-m") != 0)))){
46 System
.out
.printf("%s\n", "Error arguments! Please type \"ContextTool -h\" for helpinfo.");
56 * standardize user's input args
57 * @param args -- user's input
58 * @return no return value
60 public static int standardizeParameter(String
[] args
) {
63 StringBuffer InputData
= new StringBuffer();
64 for (int i
= 0; i
< args
.length
; i
++) {
65 InputData
.append(args
[i
]);
66 InputData
.append(" ");
70 while (i
< InputData
.length()) {
71 int j
= InputData
.indexOf("-", i
+ 1);
73 j
= InputData
.length();
75 String argstr
= InputData
.substring(i
, j
);
77 if (argstr
.charAt(1) == 'p') {
79 // argstr is "-p ", display current setting
81 if(argstr
.length() < 4 && argstr
.charAt(2) == ' '){
82 System
.out
.printf("%s\n", curpstr
);
86 //argstr is "-p ?", display possible setting
88 if(argstr
.length() < 6 && argstr
.charAt(3) == '?'){
89 System
.out
.printf( "%s\n", "assign the platform FPD file's relative path to WORKSPACE" );
93 //argstr is "-p 0", clean current setting
95 if(argstr
.length() < 6 && argstr
.charAt(3) == '0'){
101 curpstr
= pstr
.concat(argstr
.substring(2));
103 curpstr
= mergeSetting(curpstr
, argstr
);
106 } else if (argstr
.charAt(1) == 't') {
107 if(argstr
.length() < 4 && argstr
.charAt(2) == ' '){
108 System
.out
.printf("%s\n", curtstr
);
111 if(argstr
.length() < 6 && argstr
.charAt(3) == '?'){
112 System
.out
.printf( "%s\n", "What kind of the version is the binary target, such as DEBUG, RELEASE" );
115 if(argstr
.length() < 6 && argstr
.charAt(3) == '0'){
121 curtstr
= tstr
.concat(argstr
.substring(2));
123 curtstr
= mergeSetting(curtstr
, argstr
);
126 } else if (argstr
.charAt(1) == 'a') {
127 if(argstr
.length() < 4 && argstr
.charAt(2) == ' '){
128 System
.out
.printf("%s\n", curastr
);
131 if(argstr
.length() < 6 && argstr
.charAt(3) == '?'){
132 System
.out
.printf( "%s\n", "What kind of architechure is the binary target, such as IA32, IA64, X64, EBC, or ARM" );
135 if(argstr
.length() < 6 && argstr
.charAt(3) == '0'){
141 curastr
= astr
.concat(argstr
.substring(2));
143 curastr
= mergeSetting(curastr
, argstr
);
146 } else if (argstr
.charAt(1) == 'c') {
147 if(argstr
.length() < 4 && argstr
.charAt(2) == ' '){
148 System
.out
.printf("%s\n", curcstr
);
151 if(argstr
.length() < 6 && argstr
.charAt(3) == '?'){
152 System
.out
.printf( "%s\n", "Assign a txt file with the relative path to WORKSPACE, which specify the tools to use for the build and must be located in the path: WORKSPACE/Tools/Conf/" );
155 if(argstr
.length() < 6 && argstr
.charAt(3) == '0'){
161 curcstr
= pstr
.concat(argstr
.substring(2));
163 curcstr
= mergeSetting(curcstr
, argstr
);
166 } else if (argstr
.charAt(1) == 'n') {
167 if(argstr
.length() < 4 && argstr
.charAt(2) == ' '){
168 System
.out
.printf("%s\n", curnstr
);
171 if(argstr
.length() < 6 && argstr
.charAt(3) == '?'){
172 System
.out
.printf( "%s\n", "Specify the TagName, such as GCC, MSFT" );
175 if(argstr
.length() < 6 && argstr
.charAt(3) == '0'){
181 curnstr
= nstr
.concat(argstr
.substring(2));
183 curnstr
= mergeSetting(curnstr
, argstr
);
186 } else if (argstr
.charAt(1) == 'm') {
187 if(argstr
.length() < 4 && argstr
.charAt(2) == ' '){
188 System
.out
.printf("%s\n", curmstr
);
191 if(argstr
.length() < 6 && argstr
.charAt(3) == '?'){
192 System
.out
.printf( "%s\n", "The number of concurrent threads. Default is 2. Recommend to set this value to one more than the number of your compurter cores or CPUs." );
195 mstr
+= argstr
.substring(2);
198 if (argstr
.charAt(3) == '0'){
212 public static String
mergeSetting( String S1
, String S2
){
214 String
[] S
= S2
.split(" ");
216 for(int i
= 1; i
< S
.length
; i
++){
217 if(S1
.contains(S
[i
]) == false){
218 S1
= S1
.concat(" ").concat(S
[i
]);
225 public static boolean outputCurSetting(){
227 System
.out
.printf( "%s\n", "The current setting is:" );
228 System
.out
.printf( "%s\n", curpstr
);
229 System
.out
.printf( "%s\n", curtstr
);
230 System
.out
.printf( "%s\n", curastr
);
231 System
.out
.printf( "%s\n", curcstr
);
232 System
.out
.printf( "%s\n", curnstr
);
233 System
.out
.printf( "%s\n", curmstr
);
234 System
.out
.printf( "%s\n", curmestr
);
239 public static int length
= 0;
240 public static String pstr
= new String("ACTIVE_PLATFORM = ");
241 public static String tstr
= new String("TARGET = ");
242 public static String astr
= new String("TARGET_ARCH = ");
243 public static String cstr
= new String("TOOL_CHAIN_CONF = ");
244 public static String nstr
= new String("TOOL_CHAIN_TAG = ");
245 public static String mstr
= new String("MAX_CONCURRENT_THREAD_NUMBER = ");
246 public static String mestr
= new String("MULTIPLE_THREAD = ");
248 public static String curpstr
= null;
249 public static String curtstr
= null;
250 public static String curastr
= null;
251 public static String curcstr
= null;
252 public static String curnstr
= null;
253 public static String curmstr
= null;
254 public static String curmestr
= null;
256 public static int plength
= 0;
257 public static int tlength
= 0;
258 public static int alength
= 0;
259 public static int clength
= 0;
260 public static int nlength
= 0;
261 public static int mlength
= 0;
262 public static int melength
= 0;
264 public static boolean npflag
= false;
265 public static boolean ntflag
= false;
266 public static boolean naflag
= false;
267 public static boolean ncflag
= false;
268 public static boolean nnflag
= false;
269 public static boolean nmflag
= false;
270 public static boolean nmeflag
= false;