summaryrefslogtreecommitdiff
path: root/tool/rbinstall.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/rbinstall.rb')
-rwxr-xr-xtool/rbinstall.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index fab8a7b8f9..1a17f093a8 100755
--- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb
@@ -545,7 +545,22 @@ install?(:local, :comm, :man) do
alias print push
end
open(mdoc) {|r| Mdoc2Man.mdoc2man(r, w)}
- open_for_install(destfile, $data_mode) {w.join("")}
+ w = w.join("")
+ case $mantype
+ when /\.(?:(gz)|bz2)\z/
+ suffix = $&
+ compress = $1 ? "gzip" : "bzip2"
+ require 'tmpdir'
+ Dir.mktmpdir("man") {|d|
+ dest = File.join(d, File.basename(destfile))
+ File.open(dest, "wb") {|f| f.write w}
+ if system(compress, dest)
+ w = File.open(dest+suffix, "rb") {|f| f.read}
+ destfile << suffix
+ end
+ }
+ end
+ open_for_install(destfile, $data_mode) {w}
end
end
end