feat(ST2.UtilPackages): bump up all packages

- Refresh PackageCache with latest versions of everything
This commit is contained in:
Iristyle
2013-09-16 22:35:46 -04:00
parent 7195197f0f
commit a000ce8acc
451 changed files with 14151 additions and 8317 deletions

View File

@@ -0,0 +1,106 @@
import os
from ..cache import set_cache, get_cache
from ..show_error import show_error
from .vcs_upgrader import VcsUpgrader
class GitUpgrader(VcsUpgrader):
"""
Allows upgrading a local git-repository-based package
"""
cli_name = 'git'
def retrieve_binary(self):
"""
Returns the path to the git executable
:return: The string path to the executable or False on error
"""
name = 'git'
if os.name == 'nt':
name += '.exe'
binary = self.find_binary(name)
if binary and os.path.isdir(binary):
full_path = os.path.join(binary, name)
if os.path.exists(full_path):
binary = full_path
if not binary:
show_error((u'Unable to find %s. Please set the git_binary setting by accessing the ' +
u'Preferences > Package Settings > Package Control > Settings \u2013 User menu entry. ' +
u'The Settings \u2013 Default entry can be used for reference, but changes to that will be ' +
u'overwritten upon next upgrade.') % name)
return False
if os.name == 'nt':
tortoise_plink = self.find_binary('TortoisePlink.exe')
if tortoise_plink:
os.environ.setdefault('GIT_SSH', tortoise_plink)
return binary
def get_working_copy_info(self):
binary = self.retrieve_binary()
if not binary:
return False
# Get the current branch name
res = self.execute([binary, 'symbolic-ref', '-q', 'HEAD'], self.working_copy)
branch = res.replace('refs/heads/', '')
# Figure out the remote and the branch name on the remote
remote = self.execute([binary, 'config', '--get', 'branch.%s.remote' % branch], self.working_copy)
res = self.execute([binary, 'config', '--get', 'branch.%s.merge' % branch], self.working_copy)
remote_branch = res.replace('refs/heads/', '')
return {
'branch': branch,
'remote': remote,
'remote_branch': remote_branch
}
def run(self):
"""
Updates the repository with remote changes
:return: False or error, or True on success
"""
binary = self.retrieve_binary()
if not binary:
return False
info = self.get_working_copy_info()
args = [binary]
args.extend(self.update_command)
args.extend([info['remote'], info['remote_branch']])
self.execute(args, self.working_copy)
return True
def incoming(self):
""":return: bool if remote revisions are available"""
cache_key = self.working_copy + '.incoming'
incoming = get_cache(cache_key)
if incoming != None:
return incoming
binary = self.retrieve_binary()
if not binary:
return False
info = self.get_working_copy_info()
res = self.execute([binary, 'fetch', info['remote']], self.working_copy)
if res == False:
return False
args = [binary, 'log']
args.append('..%s/%s' % (info['remote'], info['remote_branch']))
output = self.execute(args, self.working_copy)
incoming = len(output) > 0
set_cache(cache_key, incoming, self.cache_length)
return incoming

View File

@@ -0,0 +1,74 @@
import os
from ..cache import set_cache, get_cache
from ..show_error import show_error
from .vcs_upgrader import VcsUpgrader
class HgUpgrader(VcsUpgrader):
"""
Allows upgrading a local mercurial-repository-based package
"""
cli_name = 'hg'
def retrieve_binary(self):
"""
Returns the path to the hg executable
:return: The string path to the executable or False on error
"""
name = 'hg'
if os.name == 'nt':
name += '.exe'
binary = self.find_binary(name)
if binary and os.path.isdir(binary):
full_path = os.path.join(binary, name)
if os.path.exists(full_path):
binary = full_path
if not binary:
show_error((u'Unable to find %s. Please set the hg_binary setting by accessing the ' +
u'Preferences > Package Settings > Package Control > Settings \u2013 User menu entry. ' +
u'The Settings \u2013 Default entry can be used for reference, but changes to that will be ' +
u'overwritten upon next upgrade.') % name)
return False
return binary
def run(self):
"""
Updates the repository with remote changes
:return: False or error, or True on success
"""
binary = self.retrieve_binary()
if not binary:
return False
args = [binary]
args.extend(self.update_command)
args.append('default')
self.execute(args, self.working_copy)
return True
def incoming(self):
""":return: bool if remote revisions are available"""
cache_key = self.working_copy + '.incoming'
incoming = get_cache(cache_key)
if incoming != None:
return incoming
binary = self.retrieve_binary()
if not binary:
return False
args = [binary, 'in', '-q', 'default']
output = self.execute(args, self.working_copy)
if output == False:
return False
incoming = len(output) > 0
set_cache(cache_key, incoming, self.cache_length)
return incoming

View File

@@ -0,0 +1,27 @@
from ..cmd import create_cmd, Cli
class VcsUpgrader(Cli):
"""
Base class for updating packages that are a version control repository on local disk
:param vcs_binary:
The full filesystem path to the executable for the version control
system. May be set to None to allow the code to try and find it.
:param update_command:
The command to pass to the version control executable to update the
repository.
:param working_copy:
The local path to the working copy/package directory
:param cache_length:
The lenth of time to cache if incoming changesets are available
"""
def __init__(self, vcs_binary, update_command, working_copy, cache_length, debug):
self.update_command = update_command
self.working_copy = working_copy
self.cache_length = cache_length
super(VcsUpgrader, self).__init__(vcs_binary, debug)