1
0
Fork 0

[mod] lost

This commit is contained in:
Andy Bunce 2025-02-04 20:45:45 +00:00
parent 38d12d91c1
commit d37f923d09
8 changed files with 106 additions and 41 deletions

View file

@ -4,6 +4,8 @@ module namespace build = 'urn:quodatum:build1';
(:~ create a flat fat jar from jars in $input-dir
keeping only META-INF from $manifest-jar
:)
declare variable $build:archive-opts:= map { "format" : "zip", "algorithm" : "deflate" };
declare function build:fatjar-from-folder($input-dir as xs:string,$manifest-jar as xs:string)
as xs:base64Binary {
let $fold :=
@ -17,9 +19,7 @@ function ($res as map (*), $jar as xs:string) {
}
let $res := file:list($input-dir, false(), "*.jar")
=>fold-left( map { }, $fold)
return
archive:create($res? name, $res? content,
map { "format" : "zip", "algorithm" : "deflate" })
return archive:create($res? name, $res? content,$build:archive-opts)
};
(:~ create a fat jar with lib
@ -34,8 +34,7 @@ declare function build:fatjar-with-lib($input-dir as xs:string,$manifest-jar as
,$lib)
let $content:=(archive:extract-binary($bin,$name)
,$lib!file:read-binary($input-dir || .))
return archive:create($name, $content,
map { "format" : "zip", "algorithm" : "deflate" })
return archive:create($name, $content,$build:archive-opts)
};
(:~ update-manifest :)
@ -61,15 +60,13 @@ as xs:base64Binary{
build:xar-add(map{},file:resolve-path("jars/",$base),"content/")
=>build:xar-add(file:resolve-path("src/Pdfbox3.xqm",$base),"content/")
=>build:xar-add(file:resolve-path("src/metadata/",$base),"")
return archive:create($entries?name, $entries?content,
map { "format" : "zip", "algorithm" : "deflate" })
return archive:create($entries?name, $entries?content,$build:archive-opts)
};
(:~ zip data for $dir
:)
declare function build:xar-add($map as map(*),$src as xs:string,$xar-dir as xs:string)
as map(*){
let $_:=trace(count($map?name),"size ")
let $names:=if(file:is-dir($src))
then file:list($src)[not(starts-with(.,'.'))]!concat($src,.)
else $src
@ -95,7 +92,7 @@ as empty-sequence(){
};
(:~ write-binary, creating dir if required :)
declare function build:write-binary($dest as xs:string,$contents)
declare function build:write-binary($dest as xs:string,$contents as xs:base64Binary?)
as empty-sequence(){
file:create-dir(file:parent($dest)),
file:write-binary($dest,$contents)

View file

@ -13,4 +13,4 @@ let $_:=build:maven-download($maven-urls,$base || "jars/")
let $xar:=build:xar-create($base)
let $output-file := file:resolve-path("dist/pdfbox.xar",$base)
return (build:write-binary($output-file, $xar),
trace($output-file,"zar: "))
trace($output-file,"xar: "))

22
scripts/maven.xqm Normal file
View file

@ -0,0 +1,22 @@
(:~ maven access
:
::)
module namespace mvn = 'urn:quodatum:maven:1';
declare variable $mvn:example := <dependency>
<groupId>org.ccil.cowan.tagsoup</groupId>
<artifactId>tagsoup</artifactId>
<version>1.2.1</version>
</dependency>;
declare function mvn:url($dep as element(dependency),$ext as xs:string)
as xs:string {
string-join(
("https://repo.maven.apache.org/maven2/",
string-join($dep/*/string(), "/"),
"/",$dep/artifactId, "-", $dep/version, ".",$ext
))
};