aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2014-02-08 18:27:28 -0200
committerHisham Muhammad <hisham@gobolinux.org>2014-02-08 18:27:28 -0200
commit330ee40e3168cc060c6c806ec1ed90c8fb73a3ff (patch)
treec33cdfcc1a20b28a256e3c6501a307e93509dd5e
parent0033902ed5bbcd310cfbd2301ba861a43e2233a8 (diff)
downloadluarocks-330ee40e3168cc060c6c806ec1ed90c8fb73a3ff.tar.gz
luarocks-330ee40e3168cc060c6c806ec1ed90c8fb73a3ff.tar.bz2
luarocks-330ee40e3168cc060c6c806ec1ed90c8fb73a3ff.zip
Install default doc files if the rockspec does not include any.
-rw-r--r--src/luarocks/build.lua26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/luarocks/build.lua b/src/luarocks/build.lua
index 0e58e2e5..4e433f74 100644
--- a/src/luarocks/build.lua
+++ b/src/luarocks/build.lua
@@ -128,6 +128,24 @@ function apply_patches(rockspec)
128 return true 128 return true
129end 129end
130 130
131local function install_default_docs(name, version)
132 local patterns = { "readme", "license", "copying" }
133 local dest = dir.path(path.install_dir(name, version), "doc")
134 local has_dir = false
135 for name in fs.dir() do
136 for _, pattern in ipairs(patterns) do
137 if name:lower():match("^"..pattern) then
138 if not has_dir then
139 fs.make_dir(dest)
140 has_dir = true
141 end
142 fs.copy(name, dest)
143 break
144 end
145 end
146 end
147end
148
131--- Build and install a rock given a rockspec. 149--- Build and install a rock given a rockspec.
132-- @param rockspec_file string: local or remote filename of a rockspec. 150-- @param rockspec_file string: local or remote filename of a rockspec.
133-- @param need_to_fetch boolean: true if sources need to be fetched, 151-- @param need_to_fetch boolean: true if sources need to be fetched,
@@ -255,18 +273,24 @@ function build_rockspec(rockspec_file, need_to_fetch, minimal_mode, deps_mode)
255 copying_default = true 273 copying_default = true
256 end 274 end
257 275
276 local any_docs = false
258 for _, copy_dir in pairs(copy_directories) do 277 for _, copy_dir in pairs(copy_directories) do
259 if fs.is_dir(copy_dir) then 278 if fs.is_dir(copy_dir) then
260 local dest = dir.path(path.install_dir(name, version), copy_dir) 279 local dest = dir.path(path.install_dir(name, version), copy_dir)
261 fs.make_dir(dest) 280 fs.make_dir(dest)
262 fs.copy_contents(copy_dir, dest) 281 fs.copy_contents(copy_dir, dest)
282 any_docs = true
263 else 283 else
264 if not copying_default then 284 if not copying_default then
265 return nil, "Directory '"..copy_dir.."' not found" 285 return nil, "Directory '"..copy_dir.."' not found"
266 end 286 end
267 end 287 end
268 end 288 end
269 289
290 if not any_docs then
291 install_default_docs(name, version)
292 end
293
270 for _, d in pairs(dirs) do 294 for _, d in pairs(dirs) do
271 fs.remove_dir_if_empty(d.name) 295 fs.remove_dir_if_empty(d.name)
272 end 296 end