private static final Pattern ptninfequation = Pattern.compile("([^\\s]*)\\s*=\\s*([^\\s]*)");\r
private static final Pattern ptnsection = Pattern.compile("\\[([^\\[\\]]*)\\]([^\\[\\]]*)\\n", Pattern.MULTILINE);\r
private static final Pattern ptnfilename = Pattern.compile("[^\\s]+");\r
- \r
+\r
public final void ModuleScan() throws Exception {\r
Common.toDoAll(mi.modulepath, ModuleInfo.class.getMethod("enroll", String.class), mi, null, Common.FILE);\r
\r
}\r
}\r
}\r
- \r
+ private final String extractLicense(String wholeline) throws Exception {\r
+ String tempLine;\r
+ String license = null;\r
+\r
+ BufferedReader rd = new BufferedReader(new StringReader(wholeline));\r
+ while ((tempLine = rd.readLine()) != null) {\r
+ if (tempLine.contains("#")) {\r
+ if (tempLine.contains("Copyright")) {\r
+ //\r
+ // Find license info.\r
+ // \r
+ license = "";\r
+ while ((tempLine = rd.readLine())!= null) {\r
+ if (!tempLine.contains("#") ||\r
+ tempLine.contains("Module Name:") ||\r
+ tempLine.contains("Abstract:")) {\r
+ //\r
+ // We assume license ends here.\r
+ // \r
+ break;\r
+ }\r
+ license += " " + tempLine.replaceAll("\\s*[#]\\s*(.*)", "$1\n");\r
+ }\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ return license;\r
+ }\r
+\r
private final void readInf(String name) throws Exception {\r
System.out.println("\nParsing INF file: " + name);\r
String wholeline;\r
Matcher mtrfilename;\r
\r
wholeline = Common.file2string(mi.modulepath + File.separator + name);\r
+ mi.license = extractLicense(wholeline);\r
mtrsection = ptnsection.matcher(wholeline);\r
while (mtrsection.find()) {\r
if (mtrsection.group(1).matches("defines")) {\r