summary refs log tree commit diff
path: root/pkgs/build-support/setup-hooks/compress-man-pages.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/setup-hooks/compress-man-pages.sh')
-rw-r--r--pkgs/build-support/setup-hooks/compress-man-pages.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/build-support/setup-hooks/compress-man-pages.sh b/pkgs/build-support/setup-hooks/compress-man-pages.sh
new file mode 100644
index 000000000000..74c565ebffc5
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/compress-man-pages.sh
@@ -0,0 +1,27 @@
+addHook fixupOutput 'if [ -z "$dontGzipMan" ]; then compressManPages "$prefix"; fi'
+
+compressManPages() {
+    local dir="$1"
+
+    echo "gzipping man pages in $dir"
+
+    GLOBIGNORE=.:..:*.gz:*.bz2
+
+    for f in "$dir"/share/man/*/* "$dir"/share/man/*/*/*; do
+        if [ -f "$f" -a ! -L "$f" ]; then
+            if gzip -c -n "$f" > "$f".gz; then
+                rm "$f"
+            else
+                rm "$f".gz
+            fi
+        fi
+    done
+
+    for f in "$dir"/share/man/*/* "$dir"/share/man/*/*/*; do
+        if [ -L "$f" -a -f `readlink -f "$f"`.gz ]; then
+            ln -sf `readlink "$f"`.gz "$f".gz && rm "$f"
+        fi
+    done
+
+    unset GLOBIGNORE
+}