Files
ChocolateyPackages/EthanBrown.SublimeText2.UtilPackages/tools/PackageCache/Package Control/Package Control.py
Iristyle a000ce8acc feat(ST2.UtilPackages): bump up all packages
- Refresh PackageCache with latest versions of everything
2013-09-16 22:35:46 -04:00

102 lines
3.9 KiB
Python

import sublime
import sys
import os
import locale
st_version = 2
# Warn about out-dated versions of ST3
if sublime.version() == '':
st_version = 3
print('Package Control: Please upgrade to Sublime Text 3 build 3012 or newer')
elif int(sublime.version()) > 3000:
st_version = 3
if st_version == 3:
installed_dir, _ = __name__.split('.')
elif st_version == 2:
installed_dir = os.path.basename(os.getcwd())
# Ensure the user has installed Package Control properly
if installed_dir != 'Package Control':
message = (u"Package Control\n\nThis package appears to be installed " +
u"incorrectly.\n\nIt should be installed as \"Package Control\", " +
u"but seems to be installed as \"%s\".\n\n" % installed_dir)
# If installed unpacked
if os.path.exists(os.path.join(sublime.packages_path(), installed_dir)):
message += (u"Please use the Preferences > Browse Packages... menu " +
u"entry to open the \"Packages/\" folder and rename" +
u"\"%s/\" to \"Package Control/\" " % installed_dir)
# If installed as a .sublime-package file
else:
message += (u"Please use the Preferences > Browse Packages... menu " +
u"entry to open the \"Packages/\" folder, then browse up a " +
u"folder and into the \"Installed Packages/\" folder.\n\n" +
u"Inside of \"Installed Packages/\", rename " +
u"\"%s.sublime-package\" to " % installed_dir +
u"\"Package Control.sublime-package\" ")
message += u"and restart Sublime Text."
sublime.error_message(message)
# Normal execution will finish setting up the package
else:
reloader_name = 'package_control.reloader'
# ST3 loads each package as a module, so it needs an extra prefix
if st_version == 3:
reloader_name = 'Package Control.' + reloader_name
from imp import reload
# Make sure all dependencies are reloaded on upgrade
if reloader_name in sys.modules:
reload(sys.modules[reloader_name])
try:
# Python 3
from .package_control import reloader
from .package_control.commands import *
from .package_control.package_cleanup import PackageCleanup
except (ValueError):
# Python 2
from package_control import reloader
from package_control import sys_path
from package_control.commands import *
from package_control.package_cleanup import PackageCleanup
def plugin_loaded():
# Make sure the user's locale can handle non-ASCII. A whole bunch of
# work was done to try and make Package Control work even if the locale
# was poorly set, by manually encoding all file paths, but it ended up
# being a fool's errand since the package loading code built into
# Sublime Text is not written to work that way, and although packages
# could be installed, they could not be loaded properly.
try:
os.path.exists(os.path.join(sublime.packages_path(), u"fran\u00e7ais"))
except (UnicodeEncodeError) as e:
message = (u"Package Control\n\nYour system's locale is set to a " +
u"value that can not handle non-ASCII characters. Package " +
u"Control can not properly work unless this is fixed.\n\n" +
u"On Linux, please reference your distribution's docs for " +
u"information on properly setting the LANG environmental " +
u"variable. As a temporary work-around, you can launch " +
u"Sublime Text from the terminal with:\n\n" +
u"LANG=en_US.UTF-8 sublime_text")
sublime.error_message(message)
return
# Start shortly after Sublime starts so package renames don't cause errors
# with keybindings, settings, etc disappearing in the middle of parsing
sublime.set_timeout(lambda: PackageCleanup().start(), 2000)
if st_version == 2:
plugin_loaded()