diff options
| author | hisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c> | 2009-08-14 20:57:38 +0000 |
|---|---|---|
| committer | hisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c> | 2009-08-14 20:57:38 +0000 |
| commit | ec074fcb99c44941c38775e51700d60cbd59cfd4 (patch) | |
| tree | 56896b28c3f1b84a427563882f17e96f875dd50a /src | |
| parent | 9f59a5c272af8d283ecc54b3578daaf64bd8612e (diff) | |
| download | luarocks-ec074fcb99c44941c38775e51700d60cbd59cfd4.tar.gz luarocks-ec074fcb99c44941c38775e51700d60cbd59cfd4.tar.bz2 luarocks-ec074fcb99c44941c38775e51700d60cbd59cfd4.zip | |
further cleanup in fs abstractions
git-svn-id: http://luarocks.org/svn/luarocks/trunk@48 9ca3f7c1-7366-0410-b1a3-b5c78f85698c
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/cfg.lua | 13 | ||||
| -rw-r--r-- | src/luarocks/fs/lua.lua | 49 | ||||
| -rw-r--r-- | src/luarocks/fs/unix/tools.lua | 30 |
3 files changed, 55 insertions, 37 deletions
diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua index ddcfac9d..bd3bdbc3 100644 --- a/src/luarocks/cfg.lua +++ b/src/luarocks/cfg.lua | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | ||
| 2 | local rawset, next, table, pairs, print, require, io, os, setmetatable, pcall = | 2 | local rawset, next, table, pairs, print, require, io, os, setmetatable, pcall, ipairs, package = |
| 3 | rawset, next, table, pairs, print, require, io, os, setmetatable, pcall | 3 | rawset, next, table, pairs, print, require, io, os, setmetatable, pcall, ipairs, package |
| 4 | 4 | ||
| 5 | --- Configuration for LuaRocks. | 5 | --- Configuration for LuaRocks. |
| 6 | -- Tries to load the user's configuration file and | 6 | -- Tries to load the user's configuration file and |
| @@ -109,6 +109,8 @@ local defaults = { | |||
| 109 | root_dir = root, | 109 | root_dir = root, |
| 110 | rocks_dir = root.."/lib/luarocks/rocks", | 110 | rocks_dir = root.."/lib/luarocks/rocks", |
| 111 | scripts_dir = root.."/bin/", | 111 | scripts_dir = root.."/bin/", |
| 112 | lua_modules_path = "/share/lua/5.1/", | ||
| 113 | bin_modules_path = "/lib/lua/5.1/", | ||
| 112 | lua_modules_dir = root.."/share/lua/5.1/", | 114 | lua_modules_dir = root.."/share/lua/5.1/", |
| 113 | bin_modules_dir = root.."/lib/lua/5.1/", | 115 | bin_modules_dir = root.."/lib/lua/5.1/", |
| 114 | 116 | ||
| @@ -269,3 +271,10 @@ local cfg_mt = { | |||
| 269 | end | 271 | end |
| 270 | } | 272 | } |
| 271 | setmetatable(_M, cfg_mt) | 273 | setmetatable(_M, cfg_mt) |
| 274 | |||
| 275 | |||
| 276 | for _,tree in ipairs(rocks_trees) do | ||
| 277 | package.path = tree..lua_modules_path.."/?.lua;"..tree..lua_modules_path.."/?/init.lua;"..package.path | ||
| 278 | package.cpath = tree..bin_modules_path.."/?."..lib_extension..";"..package.cpath | ||
| 279 | end | ||
| 280 | |||
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua index 013fad5f..f989b652 100644 --- a/src/luarocks/fs/lua.lua +++ b/src/luarocks/fs/lua.lua | |||
| @@ -10,9 +10,9 @@ local dir = require("luarocks.dir") | |||
| 10 | 10 | ||
| 11 | local zip_ok, zip = pcall(require, "luarocks.tools.zip") | 11 | local zip_ok, zip = pcall(require, "luarocks.tools.zip") |
| 12 | local lfs_ok, lfs = pcall(require, "lfs") | 12 | local lfs_ok, lfs = pcall(require, "lfs") |
| 13 | |||
| 14 | local curl_ok, curl = pcall(require, "luacurl") | 13 | local curl_ok, curl = pcall(require, "luacurl") |
| 15 | local md5_ok, md5 = pcall(require, "md5") | 14 | local md5_ok, md5 = pcall(require, "md5") |
| 15 | local posix_ok, posix = pcall(require, "posix") | ||
| 16 | 16 | ||
| 17 | local tar = require("luarocks.tools.tar") | 17 | local tar = require("luarocks.tools.tar") |
| 18 | local patch = require("luarocks.tools.patch") | 18 | local patch = require("luarocks.tools.patch") |
| @@ -468,6 +468,19 @@ end | |||
| 468 | end | 468 | end |
| 469 | 469 | ||
| 470 | --------------------------------------------------------------------- | 470 | --------------------------------------------------------------------- |
| 471 | -- POSIX functions | ||
| 472 | --------------------------------------------------------------------- | ||
| 473 | |||
| 474 | if posix_ok then | ||
| 475 | |||
| 476 | function chmod(file, mode) | ||
| 477 | local err = posix.chmod(file, mode) | ||
| 478 | return err == 0 | ||
| 479 | end | ||
| 480 | |||
| 481 | end | ||
| 482 | |||
| 483 | --------------------------------------------------------------------- | ||
| 471 | -- Other functions | 484 | -- Other functions |
| 472 | --------------------------------------------------------------------- | 485 | --------------------------------------------------------------------- |
| 473 | 486 | ||
| @@ -503,37 +516,3 @@ function move(src, dest) | |||
| 503 | end | 516 | end |
| 504 | return true | 517 | return true |
| 505 | end | 518 | end |
| 506 | |||
| 507 | --------------------------------------------------------------------- | ||
| 508 | -- TODO These still reference external binaries | ||
| 509 | --------------------------------------------------------------------- | ||
| 510 | |||
| 511 | --- Unpack an archive. | ||
| 512 | -- Extract the contents of an archive, detecting its format by | ||
| 513 | -- filename extension. | ||
| 514 | -- @param archive string: Filename of archive. | ||
| 515 | -- @return boolean or (boolean, string): true on success, false and an error message on failure. | ||
| 516 | function unpack_archive(archive) | ||
| 517 | assert(type(archive) == "string") | ||
| 518 | |||
| 519 | local ok | ||
| 520 | if archive:match("%.tar%.gz$") or archive:match("%.tgz$") then | ||
| 521 | -- ok = fs.execute("tar zxvpf ", archive) | ||
| 522 | ok = fs.execute_string("gunzip -c "..archive.."|tar -xf -") | ||
| 523 | elseif archive:match("%.tar%.bz2$") then | ||
| 524 | -- ok = fs.execute("tar jxvpf ", archive) | ||
| 525 | ok = fs.execute_string("bunzip2 -c "..archive.."|tar -xf -") | ||
| 526 | elseif archive:match("%.zip$") then | ||
| 527 | ok = fs.execute("unzip ", archive) | ||
| 528 | elseif archive:match("%.lua$") or archive:match("%.c$") then | ||
| 529 | -- Ignore .lua and .c files; they don't need to be extracted. | ||
| 530 | return true | ||
| 531 | else | ||
| 532 | local ext = archive:match(".*(%..*)") | ||
| 533 | return false, "Unrecognized filename extension "..(ext or "") | ||
| 534 | end | ||
| 535 | if not ok then | ||
| 536 | return false, "Failed extracting "..archive | ||
| 537 | end | ||
| 538 | return true | ||
| 539 | end | ||
diff --git a/src/luarocks/fs/unix/tools.lua b/src/luarocks/fs/unix/tools.lua index 71dfe074..b4cb43a7 100644 --- a/src/luarocks/fs/unix/tools.lua +++ b/src/luarocks/fs/unix/tools.lua | |||
| @@ -321,3 +321,33 @@ function check_md5(file, md5sum) | |||
| 321 | return false | 321 | return false |
| 322 | end | 322 | end |
| 323 | end | 323 | end |
| 324 | |||
| 325 | --- Unpack an archive. | ||
| 326 | -- Extract the contents of an archive, detecting its format by | ||
| 327 | -- filename extension. | ||
| 328 | -- @param archive string: Filename of archive. | ||
| 329 | -- @return boolean or (boolean, string): true on success, false and an error message on failure. | ||
| 330 | function unpack_archive(archive) | ||
| 331 | assert(type(archive) == "string") | ||
| 332 | |||
| 333 | local ok | ||
| 334 | if archive:match("%.tar%.gz$") or archive:match("%.tgz$") then | ||
| 335 | -- ok = fs.execute("tar zxvpf ", archive) | ||
| 336 | ok = fs.execute_string("gunzip -c "..archive.."|tar -xf -") | ||
| 337 | elseif archive:match("%.tar%.bz2$") then | ||
| 338 | -- ok = fs.execute("tar jxvpf ", archive) | ||
| 339 | ok = fs.execute_string("bunzip2 -c "..archive.."|tar -xf -") | ||
| 340 | elseif archive:match("%.zip$") then | ||
| 341 | ok = fs.execute("unzip ", archive) | ||
| 342 | elseif archive:match("%.lua$") or archive:match("%.c$") then | ||
| 343 | -- Ignore .lua and .c files; they don't need to be extracted. | ||
| 344 | return true | ||
| 345 | else | ||
| 346 | local ext = archive:match(".*(%..*)") | ||
| 347 | return false, "Unrecognized filename extension "..(ext or "") | ||
| 348 | end | ||
| 349 | if not ok then | ||
| 350 | return false, "Failed extracting "..archive | ||
| 351 | end | ||
| 352 | return true | ||
| 353 | end | ||
