summaryrefslogtreecommitdiff
path: root/ninja.lua
diff options
context:
space:
mode:
Diffstat (limited to 'ninja.lua')
-rw-r--r--ninja.lua16
1 files changed, 11 insertions, 5 deletions
diff --git a/ninja.lua b/ninja.lua
index 988ec4de..ed73a955 100644
--- a/ninja.lua
+++ b/ninja.lua
@@ -486,14 +486,20 @@ end
function man(srcs, section)
for _, src in ipairs(srcs) do
+ local out = src..'.gz'
if not src:match('^[$/]') then
src = '$srcdir/'..src
+ out = '$outdir/'..out
end
- local i = src:find('/', 1, true)
- local gz = '$outdir'..src:sub(i)..'.gz'
- build('gzip', gz, src)
- local srcsection = section or src:match('[^.]*$')
- file('share/man/man'..srcsection..'/'..gz:match('[^/]*$'), '644', gz)
+
+ local base = src:match('[^/]*$')
+ local ext = base:match('%.([^.]*)$')
+ if section then
+ if ext then base = base:sub(1, -(#ext + 2)) end
+ ext = section
+ end
+ build('gzip', out, src)
+ file('share/man/man'..ext..'/'..base..'.'..ext, '644', out)
end
end