mirror of
https://github.com/progval/Limnoria.git
synced 2025-04-26 13:01:06 -05:00
PluginDownloader: support non-master branches
This commit is contained in:
parent
bdbc79bfc6
commit
32ab953dd1
@ -57,19 +57,21 @@ class GitRepository(VersionnedRepository):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
class GithubRepository(GitRepository):
|
class GithubRepository(GitRepository):
|
||||||
def __init__(self, username, reponame, path='/'):
|
def __init__(self, username, reponame, path='/', branch='master'):
|
||||||
self._username = username
|
self._username = username
|
||||||
self._reponame = reponame
|
self._reponame = reponame
|
||||||
|
self._branch = branch
|
||||||
if not path.startswith('/'):
|
if not path.startswith('/'):
|
||||||
path = '/' + path
|
path = '/' + path
|
||||||
if not path.endswith('/'):
|
if not path.endswith('/'):
|
||||||
path += '/'
|
path += '/'
|
||||||
self._path = path
|
self._path = path
|
||||||
|
|
||||||
self._downloadUrl = 'https://github.com/%s/%s/tarball/master' % \
|
self._downloadUrl = 'https://github.com/%s/%s/tarball/%s' % \
|
||||||
(
|
(
|
||||||
self._username,
|
self._username,
|
||||||
self._reponame,
|
self._reponame,
|
||||||
|
self._branch
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -81,14 +83,12 @@ class GithubRepository(GitRepository):
|
|||||||
return json.loads(utils.web.getUrl(url).decode('utf8'))
|
return json.loads(utils.web.getUrl(url).decode('utf8'))
|
||||||
|
|
||||||
def getPluginList(self):
|
def getPluginList(self):
|
||||||
plugins = self._query(
|
plugins = self._query('repos',
|
||||||
'repos',
|
'%s/%s/contents%s' % (self._username,
|
||||||
'%s/%s/contents%s' % (
|
self._reponame,
|
||||||
self._username,
|
self._path),
|
||||||
self._reponame,
|
args={'ref': self._branch}
|
||||||
self._path,
|
)
|
||||||
)
|
|
||||||
)
|
|
||||||
if plugins is None:
|
if plugins is None:
|
||||||
log.error((
|
log.error((
|
||||||
'Cannot get plugins list from repository %s/%s '
|
'Cannot get plugins list from repository %s/%s '
|
||||||
@ -111,6 +111,7 @@ class GithubRepository(GitRepository):
|
|||||||
response.close()
|
response.close()
|
||||||
fileObject.seek(0)
|
fileObject.seek(0)
|
||||||
return tarfile.open(fileobj=fileObject, mode='r:gz')
|
return tarfile.open(fileobj=fileObject, mode='r:gz')
|
||||||
|
|
||||||
def install(self, plugin):
|
def install(self, plugin):
|
||||||
archive = self._download(plugin)
|
archive = self._download(plugin)
|
||||||
prefix = archive.getnames()[0]
|
prefix = archive.getnames()[0]
|
||||||
@ -318,7 +319,7 @@ repositories = utils.InsensitivePreservingDict({
|
|||||||
class PluginDownloader(callbacks.Plugin):
|
class PluginDownloader(callbacks.Plugin):
|
||||||
"""This plugin allows you to install unofficial plugins from
|
"""This plugin allows you to install unofficial plugins from
|
||||||
multiple repositories easily. Use the "repolist" command to see list of
|
multiple repositories easily. Use the "repolist" command to see list of
|
||||||
available repositories and "repolist <repository>" to list plugins,
|
available repositories and "repolist <repository>" to list plugins,
|
||||||
which are available in that repository. When you want to install plugin,
|
which are available in that repository. When you want to install plugin,
|
||||||
just run command "install <repository> <plugin>"."""
|
just run command "install <repository> <plugin>"."""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user