]>
git.proxmox.com Git - mirror_edk2.git/blob - Tools/Java/Source/ContextTool/org/tianocore/context/ParseParameter.java
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 ;