Am 21.12.2015 um 12:14 schröbte Geoff Leyland: >> On 21/12/2015, at 11:26 pm, Daurnimator <q...@daurnimator.com> wrote: >> >> On 21 December 2015 at 19:37, Geoff Leyland <geoff_leyl...@fastmail.fm> >> wrote: >>> 2) There doesn't seem to be a protocol on which luarocks will talk to a >>> *private* repository on bitbucket. >>> git:// seems to be unauthenticated, so doesn't really work for private >>> repositories. >>> Luarocks doesn't seem to understand ssh:// urls. >>> https:// nearly gets there: I can get a zip of the repository with: >>> >>> source = { url = >>> "https://<username>:<password>@bitbucket.org/<username>/<repo>/get/master.zip" >>> } >>> >>> But the top level directory of the zip is unhelpfully named >>> "<repo>-<hash>", rather than the "<repo>-master" you get from github. This >>> means that you can't set source.dir to the name of this directory (since >>> every time you commit the new hash you... change the hash of the head). >> >> And you're sure "master" doesn't work? >> Usually websites just feed that piece of the url directly to git: on >> e.g. github you can use <hash> or `master` or `master^` or any other >> git commit-ish > > I really hope master does work, but where should I be using "master"? > > In the above, I ask for "master.zip", (or tar.gz) and get "master.zip", but > master.zip contains one directory: "<username>-<repo>-<hash>". That is, it > helpfully converted my commit-ish into an actual commit hash. You can see > what they're thinking, I guess: that top level directory name is unique > within bitbucket, but it's not helping me. As I said, if you ask github for > master.zip, the top-level directory is named "<repo>-master". > > At the moment the only solution I can imagine (apart from giving up > on bitbucket) is to patch luarocks so that maybe source.dir can be a > pattern (oh, hey, can it already?), or maybe if source.dir is blank > and there's only one top-level directory in the zip, then that's > where it looks for what it's looking for. I haven't actually looked > at the relevant bit of the luarocks source yet, so I don't know how > tricky that might be.
That shouldn't be too hard, the relevant bits are already there. The function you'd want to use is `fetch.find_base_dir()` in `src/luarocks/fetch.lua`, and the place you need to edit is in `fetch.get_sources()` (same file) right after the `fs.unpack_archive()` call. HTH, Philipp ------------------------------------------------------------------------------ _______________________________________________ Luarocks-developers mailing list Luarocks-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/luarocks-developers