Skip to content

Commit ecb0fbf

Browse files
committed
Reinstate support for eXist-db 4.x.x
1 parent 0b5d3f9 commit ecb0fbf

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

modules/get-package.xq

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ xquery version "3.1";
1111
import module namespace config="http://exist-db.org/xquery/apps/config" at "config.xqm";
1212
import module namespace log="http://exist-db.org/xquery/app/log" at "log.xqm";
1313

14+
declare namespace compression="http://exist-db.org/xquery/compression";
1415
declare namespace request="http://exist-db.org/xquery/request";
1516
declare namespace response="http://exist-db.org/xquery/response";
1617
declare namespace util="http://exist-db.org/xquery/util";
@@ -40,9 +41,10 @@ declare function local:log-package-not-found-event($filename as xs:string) as em
4041

4142

4243
let $filename := request:get-parameter("filename", ())
44+
let $wants-zip as xs:boolean := ends-with($filename, ".zip")
4345
let $xar-filename :=
4446
(: strip .zip from resource name :)
45-
if (ends-with($filename, ".zip")) then
47+
if ($wants-zip) then
4648
replace($filename, ".zip$", "")
4749
else
4850
$filename
@@ -52,7 +54,13 @@ return
5254
let $xar := util:binary-doc($config:packages-col || "/" || $xar-filename)
5355
let $log := local:log-get-package-event($xar-filename)
5456
return
55-
response:stream-binary($xar, "application/zip")
57+
if ($wants-zip) then
58+
let $entry := <entry type="binary" method="store" name="/{$xar-filename}" strip-prefix="false">{$xar}</entry>
59+
let $zip := compression:zip($entry, false())
60+
return
61+
response:stream-binary($zip, "application/zip")
62+
else
63+
response:stream-binary($xar, "application/zip")
5664
else
5765
(
5866
response:set-status-code(404),

0 commit comments

Comments
 (0)