]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/ContextTool/org/tianocore/context/TargetFile.java
add some features:
[mirror_edk2.git] / Tools / Java / Source / ContextTool / org / tianocore / context / TargetFile.java
index 3143b8c86d5062de23527f3f2bb46d1a35fdffb0..adde59b8437fc3bfc1f4595edd9bbce3942535cf 100644 (file)
@@ -30,7 +30,7 @@ public class TargetFile {
      * @param String filename : the name of target file\r
      * @return true or false\r
      **/\r
-    public static boolean parsePath(String filename) {\r
+    public static boolean setFile(String filename) {\r
 \r
         String workspacePath = System.getenv("WORKSPACE");\r
         \r
@@ -55,17 +55,37 @@ public class TargetFile {
         TargetFile.writeFile(Fd);\r
         return true;\r
     }\r
+    \r
+    \r
+    /** \r
+     * validate the filename\r
+     * @param String filename : the name of target file\r
+     * \r
+     * @return true or false\r
+     **/\r
+    public static boolean validateFilename(String filename) {\r
+        \r
+        String workspacePath = System.getenv("WORKSPACE");\r
+        \r
+        Fd = new File(workspacePath + File.separator + "Tools" + File.separator + "Conf" + File.separator + filename);\r
+        \r
+        if (Fd.exists() == true && Fd.canRead() == true)\r
+            return true;\r
+        else\r
+            return false;\r
+    }\r
+    \r
 \r
     /**\r
      * create a empty temp file, which is located at the same directory with target file\r
      * @param String filename : the name of target temp file\r
      * @return true or false\r
      **/\r
-    private static boolean createTempFile(String filename) {\r
+    public static boolean createTempFile(String filename) {\r
 \r
         String workspacePath = System.getenv("WORKSPACE");\r
         \r
-        TempFd = new File(workspacePath + File.separator + "Tools" + File.separator + "Conf" + File.separator + filename);\r
+        TempFd = new File(workspacePath + File.separator + "Tools" + File.separator + "Conf" + File.separator + filename + "tmp");\r
 \r
         if (TempFd.exists() == true) {\r
             if (TempFd.delete() == false) {\r
@@ -89,7 +109,7 @@ public class TargetFile {
      * @param no paremeter\r
      * @return true or false\r
      **/\r
-    private static boolean readwriteFile() {\r
+    public static boolean readwriteFile() {\r
 \r
         if (Fd.canRead() != true)\r
             return false;\r
@@ -137,15 +157,15 @@ public class TargetFile {
                     if (textLine.indexOf("ACTIVE_PLATFORM") != -1) {\r
                         if(pflag == true){\r
                             if(textLine.trim().charAt(0) == '#'){\r
-                                if(ParseParameter.pstr.length() > ParseParameter.length) {\r
-                                    bw.write(ParseParameter.pstr);\r
+                                if(ParseParameter.curpstr.length() >= ParseParameter.plength) {\r
+                                    bw.write(ParseParameter.curpstr);\r
                                     bw.newLine();\r
                                     pflag = false;\r
                                 }\r
                                 continue;\r
                             }\r
-                            if(ParseParameter.pstr.length() > ParseParameter.length) {\r
-                                bw.write(ParseParameter.pstr);\r
+                            if(ParseParameter.curpstr.length() >= ParseParameter.plength) {\r
+                                bw.write(ParseParameter.curpstr);\r
                             } else {\r
                                 bw.write(textLine);\r
                             }\r
@@ -155,15 +175,15 @@ public class TargetFile {
                     } else if (textLine.indexOf("TARGET_ARCH") != -1) {\r
                         if(aflag == true){\r
                             if(textLine.trim().charAt(0) == '#'){\r
-                                if(ParseParameter.astr.length() > ParseParameter.length) {\r
-                                    bw.write(ParseParameter.astr);\r
+                                if(ParseParameter.curastr.length() >= ParseParameter.alength) {\r
+                                    bw.write(ParseParameter.curastr);\r
                                     bw.newLine();\r
                                     aflag = false;\r
                                 }\r
                                 continue;\r
                             }\r
-                            if(ParseParameter.astr.length() > ParseParameter.length) {\r
-                                bw.write(ParseParameter.astr);\r
+                            if(ParseParameter.curastr.length() >= ParseParameter.alength) {\r
+                                bw.write(ParseParameter.curastr);\r
                             } else {\r
                                 bw.write(textLine);\r
                             }\r
@@ -173,15 +193,15 @@ public class TargetFile {
                     } else if (textLine.indexOf("TARGET") != -1) {\r
                         if(tflag == true){\r
                             if(textLine.trim().charAt(0) == '#'){\r
-                                if(ParseParameter.tstr.length() > ParseParameter.length) {\r
-                                    bw.write(ParseParameter.tstr);\r
+                                if(ParseParameter.curtstr.length() >= ParseParameter.tlength) {\r
+                                    bw.write(ParseParameter.curtstr);\r
                                     bw.newLine();\r
                                     tflag = false;\r
                                 }\r
                                 continue;\r
                             }\r
-                            if(ParseParameter.tstr.length() > ParseParameter.length) {\r
-                                bw.write(ParseParameter.tstr);\r
+                            if(ParseParameter.curtstr.length() >= ParseParameter.tlength) {\r
+                                bw.write(ParseParameter.curtstr);\r
                             } else {\r
                                 bw.write(textLine);\r
                             }\r
@@ -191,15 +211,15 @@ public class TargetFile {
                     } else if (textLine.indexOf("TOOL_CHAIN_CONF") != -1) {\r
                         if(cflag == true){\r
                             if(textLine.trim().charAt(0) == '#'){\r
-                                if(ParseParameter.cstr.length() > ParseParameter.length) {\r
-                                    bw.write(ParseParameter.cstr);\r
+                                if(ParseParameter.curcstr.length() >= ParseParameter.clength) {\r
+                                    bw.write(ParseParameter.curcstr);\r
                                     bw.newLine();\r
                                     cflag = false;\r
                                 }\r
                                 continue;\r
                             }\r
-                            if(ParseParameter.cstr.length() > ParseParameter.length) {\r
-                                bw.write(ParseParameter.cstr);\r
+                            if(ParseParameter.curcstr.length() >= ParseParameter.clength) {\r
+                                bw.write(ParseParameter.curcstr);\r
                             } else {\r
                                 bw.write(textLine);\r
                             }\r
@@ -209,15 +229,15 @@ public class TargetFile {
                     } else if (textLine.indexOf("TOOL_CHAIN_TAG") != -1) {\r
                         if(nflag == true){\r
                             if(textLine.trim().charAt(0) == '#'){\r
-                                if(ParseParameter.nstr.length() > ParseParameter.length) {\r
-                                    bw.write(ParseParameter.nstr);\r
+                                if(ParseParameter.curnstr.length() >= ParseParameter.nlength) {\r
+                                    bw.write(ParseParameter.curnstr);\r
                                     bw.newLine();\r
                                     nflag = false;\r
                                 }\r
                                 continue;\r
                             }\r
-                            if(ParseParameter.nstr.length() > ParseParameter.length) {\r
-                                bw.write(ParseParameter.nstr);\r
+                            if(ParseParameter.curnstr.length() >= ParseParameter.nlength) {\r
+                                bw.write(ParseParameter.curnstr);\r
                             } else {\r
                                 bw.write(textLine);\r
                             }\r
@@ -227,15 +247,15 @@ public class TargetFile {
                     } else if (textLine.indexOf("MAX_CONCURRENT_THREAD_NUMBER") != -1) {\r
                         if(mflag == true){\r
                             if(textLine.trim().charAt(0) == '#'){\r
-                                if(ParseParameter.mstr.length() > ParseParameter.length) {\r
-                                    bw.write(ParseParameter.mstr);\r
+                                if(ParseParameter.curmstr.length() >= ParseParameter.mlength) {\r
+                                    bw.write(ParseParameter.curmstr);\r
                                     bw.newLine();\r
                                     mflag = false;\r
                                 }\r
                                 continue;\r
                             }\r
-                            if(ParseParameter.mstr.length() > ParseParameter.length) {\r
-                                bw.write(ParseParameter.mstr);\r
+                            if(ParseParameter.curmstr.length() >= ParseParameter.mlength) {\r
+                                bw.write(ParseParameter.curmstr);\r
                             } else {\r
                                 bw.write(textLine);\r
                             }\r
@@ -245,15 +265,15 @@ public class TargetFile {
                     }else if (textLine.indexOf("MULTIPLE_THREAD") != -1) {\r
                         if(meflag == true){\r
                             if(textLine.trim().charAt(0) == '#'){\r
-                                if(ParseParameter.mestr.length() > ParseParameter.length) {\r
-                                    bw.write(ParseParameter.mestr);\r
+                                if(ParseParameter.curmestr.length() >= ParseParameter.melength) {\r
+                                    bw.write(ParseParameter.curmestr);\r
                                     bw.newLine();\r
                                     meflag = false;\r
                                 }\r
                                 continue;\r
                             }\r
-                            if(ParseParameter.mestr.length() > ParseParameter.length) {\r
-                                bw.write(ParseParameter.mestr);\r
+                            if(ParseParameter.curmestr.length() >= ParseParameter.melength) {\r
+                                bw.write(ParseParameter.curmestr);\r
                             } else {\r
                                 bw.write(textLine);\r
                             }\r
@@ -266,26 +286,26 @@ public class TargetFile {
             //\r
             //user maybe delete the line *ACTIVE_PLATFORM*=*\r
             //\r
-            if( (pflag == true) && (ParseParameter.pstr.length() > ParseParameter.length) ){\r
-                bw.write(ParseParameter.pstr);\r
+            if( (pflag == true) && (ParseParameter.curpstr.length() >= ParseParameter.plength) ){\r
+                bw.write(ParseParameter.curpstr);\r
                 bw.newLine();\r
-            } else if ( (tflag == true) && (ParseParameter.tstr.length() > ParseParameter.length) ){\r
-                bw.write(ParseParameter.tstr);\r
+            } else if ( (tflag == true) && (ParseParameter.curtstr.length() >= ParseParameter.tlength) ){\r
+                bw.write(ParseParameter.curtstr);\r
                 bw.newLine();\r
-            } else if ( (aflag == true) && (ParseParameter.astr.length() > ParseParameter.length) ){\r
-                bw.write(ParseParameter.astr);\r
+            } else if ( (aflag == true) && (ParseParameter.curastr.length() >= ParseParameter.alength) ){\r
+                bw.write(ParseParameter.curastr);\r
                 bw.newLine();\r
-            } else if ( (cflag == true) && (ParseParameter.cstr.length() > ParseParameter.length) ){\r
-                bw.write(ParseParameter.cstr);\r
+            } else if ( (cflag == true) && (ParseParameter.curcstr.length() >= ParseParameter.clength) ){\r
+                bw.write(ParseParameter.curcstr);\r
                 bw.newLine();\r
-            } else if ( (nflag == true) && (ParseParameter.nstr.length() > ParseParameter.length) ){\r
-                bw.write(ParseParameter.nstr);\r
+            } else if ( (nflag == true) && (ParseParameter.curnstr.length() >= ParseParameter.nlength) ){\r
+                bw.write(ParseParameter.curnstr);\r
                 bw.newLine();\r
-            } else if ( (meflag == true) && (ParseParameter.mestr.length() > ParseParameter.length) ){\r
-                bw.write(ParseParameter.mestr);\r
+            } else if ( (meflag == true) && (ParseParameter.curmestr.length() >= ParseParameter.melength) ){\r
+                bw.write(ParseParameter.curmestr);\r
                 bw.newLine();\r
-            } else if ( (mflag == true) && (ParseParameter.mstr.length() > ParseParameter.length) ){\r
-                bw.write(ParseParameter.mstr);\r
+            } else if ( (mflag == true) && (ParseParameter.curmstr.length() >= ParseParameter.mlength) ){\r
+                bw.write(ParseParameter.curmstr);\r
                 bw.newLine();\r
             }\r
         } catch (IOException e) {\r
@@ -313,6 +333,97 @@ public class TargetFile {
 \r
         return true;\r
     }\r
+    \r
+    /**\r
+     * read the file and output the lines which include setting\r
+     * @param File fd : the File of the target file\r
+     * @return String: the current setting\r
+     **/\r
+    public static boolean readFile() {\r
+        \r
+        BufferedReader br = null;\r
+        String textLine = null;\r
+\r
+        try {\r
+            br = new BufferedReader(new FileReader(Fd));\r
+        } catch (FileNotFoundException e) {\r
+            System.out\r
+                    .println("\n# create the BufferedReader failed, because can't find the file:target.txt!");\r
+            return false;\r
+        }\r
+        try {\r
+            while ((textLine = br.readLine()) != null) {\r
+                //\r
+                // the line is composed of Space\r
+                //\r
+                if (textLine.trim().compareToIgnoreCase("") == 0) {\r
+                    continue;\r
+                } \r
+                //\r
+                // the line starts with "#"\r
+                //\r
+                else if ((textLine.trim().charAt(0) == '#')){\r
+                    continue;\r
+                } else {\r
+                    if (textLine.indexOf("ACTIVE_PLATFORM") != -1) {\r
+                        ParseParameter.curpstr = textLine;\r
+                        ParseParameter.plength = textLine.indexOf('=');\r
+                    } else if (textLine.indexOf("TARGET_ARCH") != -1) {\r
+                        ParseParameter.curastr = textLine;\r
+                        ParseParameter.alength = textLine.indexOf('=');\r
+                    } else if (textLine.indexOf("TARGET") != -1) {\r
+                        ParseParameter.curtstr = textLine;\r
+                        ParseParameter.tlength = textLine.indexOf('=');\r
+                    } else if (textLine.indexOf("TOOL_CHAIN_CONF") != -1) {\r
+                        ParseParameter.curcstr = textLine;\r
+                        ParseParameter.clength = textLine.indexOf('=');\r
+                    } else if (textLine.indexOf("TOOL_CHAIN_TAG") != -1) {\r
+                        ParseParameter.curnstr = textLine;\r
+                        ParseParameter.nlength = textLine.indexOf('=');\r
+                    } else if (textLine.indexOf("MAX_CONCURRENT_THREAD_NUMBER") != -1) {\r
+                        ParseParameter.curmstr = textLine;\r
+                        ParseParameter.mlength = textLine.indexOf('=');\r
+                    } else if (textLine.indexOf("MULTIPLE_THREAD") != -1) {\r
+                        ParseParameter.curmestr = textLine;\r
+                        ParseParameter.melength = textLine.indexOf('=');\r
+                    }\r
+                }\r
+            }\r
+        } catch (IOException e) {\r
+            System.out.println("\n#  read file error!");\r
+            return false;\r
+        }\r
+\r
+        try {\r
+            br.close();\r
+        } catch (IOException e) {\r
+            System.out\r
+                    .println("\n#  close BufferedReader error");\r
+            return false;\r
+        }\r
+        return true;\r
+    }\r
+    \r
+    private static String convertStr(String str){\r
+        String convertStr = null;\r
+        \r
+        if( str.compareTo("-p") == 0 ){\r
+            convertStr =  "ACTIVE_PLATFORM";\r
+        }else if( str.compareTo("-a") == 0){\r
+            convertStr =  "TARGET_ARCH";\r
+        }else if( str.compareTo("-t") == 0){\r
+            convertStr =  "TARGET";\r
+        }else if( str.compareTo("-c") == 0){\r
+            convertStr =  "TOOL_CHAIN_CONF";\r
+        }else if( str.compareTo("-n") == 0){\r
+            convertStr =  "TOOL_CHAIN_TAG";\r
+        }else if( str.compareTo("-m") == 0){\r
+            convertStr =  "MAX_CONCURRENT_THREAD_NUMBER";\r
+        }\r
+        \r
+        return convertStr;\r
+    }\r
+    \r
 \r
     /**\r
      * according to user's input args, write the file directly\r