1 |
commit: 3012503417562f24f1479c10bde1b86da1917817 |
2 |
Author: zongyu <zzy2529420793 <AT> gmail <DOT> com> |
3 |
AuthorDate: Thu Aug 20 10:50:38 2020 +0000 |
4 |
Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Aug 20 14:04:15 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=30125034 |
7 |
|
8 |
accept multiple --portage-trees while generating cache |
9 |
|
10 |
Signed-off-by: zongyu <zzy2529420793 <AT> gmail.com> |
11 |
|
12 |
src/main/java/org/gentoo/java/ebuilder/Config.java | 10 +++++----- |
13 |
src/main/java/org/gentoo/java/ebuilder/Main.java | 19 +++++++++++-------- |
14 |
.../gentoo/java/ebuilder/portage/PortageParser.java | 8 +++++--- |
15 |
src/main/resources/usage.txt | 4 ++-- |
16 |
4 files changed, 23 insertions(+), 18 deletions(-) |
17 |
|
18 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/Config.java b/src/main/java/org/gentoo/java/ebuilder/Config.java |
19 |
index 4502ab3..e9396ca 100644 |
20 |
--- a/src/main/java/org/gentoo/java/ebuilder/Config.java |
21 |
+++ b/src/main/java/org/gentoo/java/ebuilder/Config.java |
22 |
@@ -88,7 +88,7 @@ public class Config { |
23 |
/** |
24 |
* Path to portage tree. |
25 |
*/ |
26 |
- private Path portageTree; |
27 |
+ private SortedSet<Path> portageTree = new TreeSet<>(); |
28 |
/** |
29 |
* Whether ebuild cache should be refreshed. |
30 |
*/ |
31 |
@@ -365,17 +365,17 @@ public class Config { |
32 |
* |
33 |
* @return {@link #portageTree} |
34 |
*/ |
35 |
- public Path getPortageTree() { |
36 |
+ public SortedSet<Path> getPortageTree() { |
37 |
return portageTree; |
38 |
} |
39 |
|
40 |
/** |
41 |
- * Setter for {@link #portageTree}. |
42 |
+ * Add portageTrees to {@link #portageTree}. |
43 |
* |
44 |
* @param portageTree {@link #portageTree} |
45 |
*/ |
46 |
- public void setPortageTree(final Path portageTree) { |
47 |
- this.portageTree = portageTree; |
48 |
+ public void addPortageTree(final Path portageTree) { |
49 |
+ this.portageTree.add(portageTree); |
50 |
} |
51 |
|
52 |
/** |
53 |
|
54 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/Main.java b/src/main/java/org/gentoo/java/ebuilder/Main.java |
55 |
index 999f741..6aaf24a 100644 |
56 |
--- a/src/main/java/org/gentoo/java/ebuilder/Main.java |
57 |
+++ b/src/main/java/org/gentoo/java/ebuilder/Main.java |
58 |
@@ -7,6 +7,7 @@ import java.io.InputStreamReader; |
59 |
import java.io.PrintWriter; |
60 |
import java.net.URI; |
61 |
import java.net.URISyntaxException; |
62 |
+import java.nio.file.Path; |
63 |
import java.nio.file.Paths; |
64 |
import java.text.MessageFormat; |
65 |
import java.util.List; |
66 |
@@ -63,16 +64,18 @@ public class Main { |
67 |
*/ |
68 |
private static void checkArgs(final Config config) { |
69 |
if (config.isRefreshCache()) { |
70 |
- if (config.getPortageTree() == null) { |
71 |
- config.setPortageTree(Paths.get("/usr/portage")); |
72 |
+ if (config.getPortageTree().isEmpty()) { |
73 |
+ config.addPortageTree(Paths.get("/usr/portage")); |
74 |
} |
75 |
|
76 |
- if (!config.getPortageTree().toFile().exists()) { |
77 |
- config.getErrorWriter().println("ERROR: Portage tree " |
78 |
- + config.getPortageTree() + " does not exist."); |
79 |
- Runtime.getRuntime().exit(1); |
80 |
+ for (Path portageTree : config.getPortageTree()) { |
81 |
+ if (!portageTree.toFile().exists()) { |
82 |
+ config.getErrorWriter().println("ERROR: Portage tree " |
83 |
+ + portageTree + " does not exist."); |
84 |
+ Runtime.getRuntime().exit(1); |
85 |
+ } |
86 |
} |
87 |
- } else if (config.getPortageTree() != null) { |
88 |
+ } else if (!config.getPortageTree().isEmpty()) { |
89 |
config.getErrorWriter().println("WARNING: Portage tree is used " |
90 |
+ "only when refreshing cache."); |
91 |
} |
92 |
@@ -277,7 +280,7 @@ public class Main { |
93 |
case "--portage-tree": |
94 |
case "-t": |
95 |
i++; |
96 |
- config.setPortageTree(Paths.get(args[i]).toAbsolutePath(). |
97 |
+ config.addPortageTree(Paths.get(args[i]).toAbsolutePath(). |
98 |
normalize()); |
99 |
break; |
100 |
case "--cache-file": |
101 |
|
102 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java |
103 |
index b48e0d2..a1a7075 100644 |
104 |
--- a/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java |
105 |
+++ b/src/main/java/org/gentoo/java/ebuilder/portage/PortageParser.java |
106 |
@@ -139,9 +139,11 @@ public class PortageParser { |
107 |
processedEbuilds = 0; |
108 |
eclassesCounts.clear(); |
109 |
|
110 |
- config.getStdoutWriter().println("Parsing portage tree @ " |
111 |
- + config.getPortageTree() + " ..."); |
112 |
- parseCategories(config.getPortageTree()); |
113 |
+ for (Path portageTree : config.getPortageTree()) { |
114 |
+ config.getStdoutWriter().println("Parsing portage tree @ " |
115 |
+ + portageTree + " ..."); |
116 |
+ parseCategories(portageTree); |
117 |
+ } |
118 |
|
119 |
final long endTimestamp = System.currentTimeMillis(); |
120 |
|
121 |
|
122 |
diff --git a/src/main/resources/usage.txt b/src/main/resources/usage.txt |
123 |
index e48e3f9..b197a39 100644 |
124 |
--- a/src/main/resources/usage.txt |
125 |
+++ b/src/main/resources/usage.txt |
126 |
@@ -22,8 +22,8 @@ Generating ebuild: |
127 |
|
128 |
Refreshing cache: |
129 |
--portage-tree|-t path to portage tree that should be parsed |
130 |
- when refreshing cache (default is |
131 |
- /usr/portage) |
132 |
+ when refreshing cache (can be specified multiple |
133 |
+ times, default is /usr/portage) |
134 |
--refresh-cache|-c refreshes java ebuild cache |
135 |
|
136 |
Common: |