1 |
commit: 46bbaf55e2d6924a324fbff3dc0755e4ad8280eb |
2 |
Author: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Nov 27 09:44:05 2019 +0000 |
4 |
Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Nov 27 09:49:19 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=46bbaf55 |
7 |
|
8 |
fixing download tarball name |
9 |
|
10 |
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org> |
11 |
|
12 |
.../gentoo/java/ebuilder/maven/MavenEbuilder.java | 42 ++++++++++++++++++++-- |
13 |
1 file changed, 40 insertions(+), 2 deletions(-) |
14 |
|
15 |
diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java |
16 |
index 5ddfd9b..c9ec5b9 100644 |
17 |
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java |
18 |
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java |
19 |
@@ -7,6 +7,8 @@ import java.nio.file.Path; |
20 |
import java.time.LocalDate; |
21 |
import java.util.ArrayList; |
22 |
import java.util.List; |
23 |
+import java.util.regex.Matcher; |
24 |
+import java.util.regex.Pattern; |
25 |
import org.gentoo.java.ebuilder.Config; |
26 |
|
27 |
/** |
28 |
@@ -20,6 +22,16 @@ public class MavenEbuilder { |
29 |
* EAPI version. |
30 |
*/ |
31 |
private static final String EAPI = "7"; |
32 |
+ /** |
33 |
+ * Pattern for retrieval of tarball extension. |
34 |
+ */ |
35 |
+ private static final Pattern PATTERN_TARBALL_EXTENSION = Pattern.compile( |
36 |
+ "^.*((?:\\.tar)\\.\\S+)$"); |
37 |
+ /** |
38 |
+ * Pattern for checking whether download tarball name matches expected name. |
39 |
+ */ |
40 |
+ private static final Pattern PATTERN_TARBALL_NAME |
41 |
+ = Pattern.compile("^.*/\\$\\{P\\}(?:\\.tar)\\.\\S+$"); |
42 |
|
43 |
/** |
44 |
* Generates ebuild from the collected information at the specified path. |
45 |
@@ -194,6 +206,32 @@ public class MavenEbuilder { |
46 |
return result; |
47 |
} |
48 |
|
49 |
+ /** |
50 |
+ * If the tarball name does not match pattern ${P}.ext then we will update |
51 |
+ * it to store the tarball as ${P}.ext. |
52 |
+ * |
53 |
+ * @param srcUri source URI |
54 |
+ * |
55 |
+ * @return either original source URI or updated source URI |
56 |
+ */ |
57 |
+ private String improveSrcUri(final String srcUri) { |
58 |
+ if (PATTERN_TARBALL_NAME.matcher(srcUri).matches()) { |
59 |
+ return srcUri; |
60 |
+ } |
61 |
+ |
62 |
+ final Matcher matcher = PATTERN_TARBALL_EXTENSION.matcher(srcUri); |
63 |
+ |
64 |
+ /** |
65 |
+ * We do not know how to get the extension so we will leave the tarball |
66 |
+ * name as it is. |
67 |
+ */ |
68 |
+ if (!matcher.matches()) { |
69 |
+ return srcUri; |
70 |
+ } |
71 |
+ |
72 |
+ return srcUri + " -> " + "${P}" + matcher.group(1); |
73 |
+ } |
74 |
+ |
75 |
/** |
76 |
* Merges maven project system dependencies of specified type and removed |
77 |
* duplicates. |
78 |
@@ -578,8 +616,8 @@ public class MavenEbuilder { |
79 |
writer.println('"'); |
80 |
|
81 |
writer.print("SRC_URI=\""); |
82 |
- writer.print( |
83 |
- replaceWithVars(config.getDownloadUri().toString(), config)); |
84 |
+ writer.print(improveSrcUri( |
85 |
+ replaceWithVars(config.getDownloadUri().toString(), config))); |
86 |
writer.println('"'); |
87 |
|
88 |
writer.print("LICENSE=\""); |