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

Reply via email to