diff options
| author | Hisham Muhammad <hisham@gobolinux.org> | 2012-02-16 15:58:16 -0200 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2012-02-16 15:58:16 -0200 |
| commit | ae2d3a684540bddc910fb68d47659cd87af0916d (patch) | |
| tree | 19d336b1a250ca54f5ff81793f774436f1b9c4e2 /src | |
| parent | 78816db7903cd80290a5014a00173ab98cd5af77 (diff) | |
| download | luarocks-ae2d3a684540bddc910fb68d47659cd87af0916d.tar.gz luarocks-ae2d3a684540bddc910fb68d47659cd87af0916d.tar.bz2 luarocks-ae2d3a684540bddc910fb68d47659cd87af0916d.zip | |
Add git_file pseudoprotocol for handling local Git repos, using "git+file:///path/to/repo.git". Closes #59.
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/fetch.lua | 2 | ||||
| -rw-r--r-- | src/luarocks/fetch/git_file.lua | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/luarocks/fetch.lua b/src/luarocks/fetch.lua index bdb448c7..b835b20e 100644 --- a/src/luarocks/fetch.lua +++ b/src/luarocks/fetch.lua | |||
| @@ -302,7 +302,7 @@ function fetch_sources(rockspec, extract, dest_dir) | |||
| 302 | if protocol == "http" or protocol == "https" or protocol == "ftp" or protocol == "file" then | 302 | if protocol == "http" or protocol == "https" or protocol == "ftp" or protocol == "file" then |
| 303 | proto = require("luarocks.fetch") | 303 | proto = require("luarocks.fetch") |
| 304 | else | 304 | else |
| 305 | ok, proto = pcall(require, "luarocks.fetch."..protocol) | 305 | ok, proto = pcall(require, "luarocks.fetch."..protocol:gsub("[+-]", "_")) |
| 306 | if not ok then | 306 | if not ok then |
| 307 | return nil, "Unknown protocol "..protocol | 307 | return nil, "Unknown protocol "..protocol |
| 308 | end | 308 | end |
diff --git a/src/luarocks/fetch/git_file.lua b/src/luarocks/fetch/git_file.lua new file mode 100644 index 00000000..1b18d0fa --- /dev/null +++ b/src/luarocks/fetch/git_file.lua | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | |||
| 2 | --- Fetch back-end for retrieving sources from local Git repositories. | ||
| 3 | module("luarocks.fetch.git_file", package.seeall) | ||
| 4 | |||
| 5 | local git = require("luarocks.fetch.git") | ||
| 6 | |||
| 7 | --- Fetch sources for building a rock from a local Git repository. | ||
| 8 | -- @param rockspec table: The rockspec table | ||
| 9 | -- @param extract boolean: Unused in this module (required for API purposes.) | ||
| 10 | -- @param dest_dir string or nil: If set, will extract to the given directory. | ||
| 11 | -- @return (string, string) or (nil, string): The absolute pathname of | ||
| 12 | -- the fetched source tarball and the temporary directory created to | ||
| 13 | -- store it; or nil and an error message. | ||
| 14 | function get_sources(rockspec, extract, dest_dir) | ||
| 15 | rockspec.source.url = rockspec.source.url:gsub("^git.file://", "") | ||
| 16 | return git.get_sources(rockspec, extract, dest_dir) | ||
| 17 | end | ||
