[mod] download
This commit is contained in:
parent
5bc6f02802
commit
a0cfa6d937
5 changed files with 110 additions and 80 deletions
|
|
@ -1,7 +1,9 @@
|
|||
(:~ build utils for REPO packaging :)
|
||||
module namespace build = 'urn:quodatum:build1';
|
||||
|
||||
(:~ create a flat fat jar :)
|
||||
(:~ create a flat fat jar from jars in $input-dir
|
||||
keeping only META-INF from $manifest-jar
|
||||
:)
|
||||
declare function build:fatjar-from-folder($input-dir as xs:string,$manifest-jar as xs:string)
|
||||
as xs:base64Binary {
|
||||
let $fold :=
|
||||
|
|
@ -13,13 +15,16 @@ function ($res as map (*), $jar as xs:string) {
|
|||
map { "name" : ($res? name, $paths),
|
||||
"content" : ($res? content,archive:extract-binary($bin, $paths)) }
|
||||
}
|
||||
let $res := fold-left(file:list($input-dir, false(), "*.jar"), map { }, $fold)
|
||||
let $res := file:list($input-dir, false(), "*.jar")
|
||||
=>fold-left( map { }, $fold)
|
||||
return
|
||||
archive:create($res? name, $res? content,
|
||||
map { "format" : "zip", "algorithm" : "deflate" })
|
||||
};
|
||||
|
||||
(:~ create a fat jar with lib :)
|
||||
(:~ create a fat jar with lib
|
||||
@remark
|
||||
:)
|
||||
declare function build:fatjar-with-lib($input-dir as xs:string,$manifest-jar as xs:string)
|
||||
{
|
||||
let $bin :=file:read-binary($input-dir || $manifest-jar)
|
||||
|
|
@ -49,3 +54,14 @@ declare function build:update($jar as xs:base64Binary,$name as xs:string,$file
|
|||
as xs:base64Binary{
|
||||
archive:update($jar,$name,$file)
|
||||
};
|
||||
|
||||
|
||||
(:~ download $files from $urls to $destdir:)
|
||||
declare variable $build:REPO as xs:string external :="https://repo1.maven.org/maven2/";
|
||||
declare function build:maven-download($urls as xs:string*,$destdir as xs:string)
|
||||
as empty-sequence(){
|
||||
for $f in $urls
|
||||
let $dest:=$destdir || replace($f,"^.*/","")
|
||||
where not(file:exists($dest))
|
||||
return file:write-binary($dest, fetch:binary(resolve-uri($f,$build:REPO)=>trace("Download: ")))
|
||||
};
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
|
||||
import module namespace build = 'urn:quodatum:build1' at 'build.xqm';
|
||||
|
||||
declare variable $files := (
|
||||
"https://repo1.maven.org/maven2/org/apache/pdfbox/pdfbox/3.0.4/pdfbox-3.0.4.jar",
|
||||
"https://repo1.maven.org/maven2/org/apache/pdfbox/pdfbox-io/3.0.4/pdfbox-io-3.0.4.jar",
|
||||
"https://repo1.maven.org/maven2/org/apache/pdfbox/fontbox/3.0.4/fontbox-3.0.4.jar",
|
||||
"https://repo1.maven.org/maven2/commons-logging/commons-logging/1.3.4/commons-logging-1.3.4.jar"
|
||||
);
|
||||
|
||||
|
||||
|
||||
let $base:= file:resolve-path("../",static-base-uri())
|
||||
let $target:=file:resolve-path("jars/",$base)
|
||||
for $f in $files
|
||||
let $n:=replace($f,"^.*/","") =>trace("N")
|
||||
return file:write-binary($target || $n, fetch:binary($f))
|
||||
|
|
@ -1,6 +1,12 @@
|
|||
|
||||
import module namespace build = 'urn:quodatum:build1' at 'build.xqm';
|
||||
|
||||
declare variable $urls := (
|
||||
"org/apache/pdfbox/pdfbox/3.0.4/pdfbox-3.0.4.jar",
|
||||
"org/apache/pdfbox/pdfbox-io/3.0.4/pdfbox-io-3.0.4.jar",
|
||||
"org/apache/pdfbox/fontbox/3.0.4/fontbox-3.0.4.jar",
|
||||
"commons-logging/commons-logging/1.3.4/commons-logging-1.3.4.jar"
|
||||
);
|
||||
(: Main execution
|
||||
Main-Class: org.basex.modules.Hello
|
||||
:)
|
||||
|
|
@ -12,6 +18,7 @@ let $config :=map {
|
|||
"main-class": "org.expkg_zone58.Pdfbox3"
|
||||
}
|
||||
let $jar-path:=file:resolve-path($config?input-dir,$config?base=>trace("base "))=>trace("jar: ")
|
||||
let $_:=build:maven-download($urls,$jar-path)
|
||||
let $fat-jar := build:fatjar-from-folder($jar-path,$config?manifest-jar)
|
||||
|
||||
let $fat-jar:=build:update-manifest($fat-jar, $config?main-class)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue