summaryrefslogtreecommitdiff
path: root/guix/utils.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-08-01 17:42:09 +0200
committerLudovic Courtès <ludo@gnu.org>2016-08-01 17:58:56 +0200
commit089b167812624cc69aac95d5a1b69688e3f97117 (patch)
tree2255fe27e3356307e33c20c2281d60bbfbec293b /guix/utils.scm
parent66c65aafa73f9ca816825abb7f84b353f7bcfdf6 (diff)
downloadgnu-guix-089b167812624cc69aac95d5a1b69688e3f97117.tar
gnu-guix-089b167812624cc69aac95d5a1b69688e3f97117.tar.gz
publish: Do not compress already-compressed files.
* guix/scripts/publish.scm (narinfo-string): Force %NO-COMPRESSION when STORE-PATH matches 'compressed-file?'. * guix/utils.scm (compressed-file?): New procedure. * tests/publish.scm ("/*.narinfo for a compressed file"): New test.
Diffstat (limited to 'guix/utils.scm')
-rw-r--r--guix/utils.scm6
1 files changed, 6 insertions, 0 deletions
diff --git a/guix/utils.scm b/guix/utils.scm
index 9e1b8ead0a..c68094cf49 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -79,6 +79,7 @@
arguments-from-environment-variable
file-extension
file-sans-extension
+ compressed-file?
switch-symlinks
call-with-temporary-output-file
call-with-temporary-directory
@@ -551,6 +552,11 @@ minor version numbers from version-string."
(substring file 0 dot)
file)))
+(define (compressed-file? file)
+ "Return true if FILE denotes a compressed file."
+ (->bool (member (file-extension file)
+ '("gz" "bz2" "xz" "lz" "tgz" "tbz2" "zip"))))
+
(define (switch-symlinks link target)
"Atomically switch LINK, a symbolic link, to point to TARGET. Works
both when LINK already exists and when it does not."