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): message = text.format(u''' Package Control Your system's locale is set to a value that can not handle non-ASCII characters. Package Control can not properly work unless this is fixed. On Linux, please reference your distribution's docs for information on properly setting the LANG environmental variable. As a temporary work-around, you can launch Sublime Text from the terminal with: LANG=en_US.UTF-8 sublime_text ''') sublime.error_message(message) return # This handles fixing unicode issues with tempdirs on ST2 for Windows tempfile_unicode_patch() # 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)
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): message = text.format( u''' Package Control Your system's locale is set to a value that can not handle non-ASCII characters. Package Control can not properly work unless this is fixed. On Linux, please reference your distribution's docs for information on properly setting the LANG environmental variable. As a temporary work-around, you can launch Sublime Text from the terminal with: LANG=en_US.UTF-8 sublime_text ''' ) sublime.error_message(message) return # This handles fixing unicode issues with tempdirs on ST2 for Windows tempfile_unicode_patch() # 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)
def win_ssl_show_restart(): sublime.message_dialog( text.format(u''' Package Control Package Control just upgraded the Python _ssl module for ST2 on Windows because the bundled one does not include support for modern SSL certificates. Please restart Sublime Text to complete the upgrade. '''))
def linux_ssl_show_restart(): sublime.message_dialog( text.format(u''' Package Control Package Control just installed or upgraded the missing Python _ssl module for Linux since Sublime Text does not include it. Please restart Sublime Text to make SSL available to all packages. '''))
def win_ssl_show_restart(): sublime.message_dialog( text.format(u''' {PACKAGESMANAGER_NAME} {PACKAGESMANAGER_NAME} just upgraded the Python _ssl module for ST2 on Windows because the bundled one does not include support for modern SSL certificates. Please restart Sublime Text to complete the upgrade. '''.format(PACKAGESMANAGER_NAME=PACKAGESMANAGER_NAME)))
def linux_ssl_show_restart(): sublime.message_dialog( text.format(u''' {PACKAGESMANAGER_NAME} {PACKAGESMANAGER_NAME} just installed or upgraded the missing Python _ssl module for Linux since Sublime Text does not include it. Please restart Sublime Text to make SSL available to all packages. '''.format(PACKAGESMANAGER_NAME=PACKAGESMANAGER_NAME)))
def win_ssl_show_restart(): sublime.message_dialog(text.format( u''' Package Control Package Control just upgraded the Python _ssl module for ST2 on Windows because the bundled one does not include support for modern SSL certificates. Please restart Sublime Text to complete the upgrade. ''' ))
def linux_ssl_show_restart(): sublime.message_dialog(text.format( u''' Package Control Package Control just installed or upgraded the missing Python _ssl module for Linux since Sublime Text does not include it. Please restart Sublime Text to make SSL available to all packages. ''' ))
elif st_version == 2: from package_control import text, sys_path installed_dir = os.path.basename(os.getcwd()) # Ensure the user has installed Package Control properly if installed_dir != 'Package Control': message = text.format(u''' Package Control This package appears to be installed incorrectly. It should be installed as "Package Control", but seems to be installed as "%s". To fix the issue, please: 1. Open the "Preferences" menu 2. Select "Browse Packages\u2026" ''', installed_dir, strip=False) # If installed unpacked if os.path.exists(os.path.join(sys_path.st_dir, 'Packages', installed_dir)): message += text.format( u''' 3. Rename the folder "%s" to "Package Control" 4. Restart Sublime Text
from package_control import text, sys_path installed_dir = os.path.basename(os.getcwd()) # Ensure the user has installed Package Control properly if installed_dir != 'Package Control': message = text.format( u''' Package Control This package appears to be installed incorrectly. It should be installed as "Package Control", but seems to be installed as "%s". To fix the issue, please: 1. Open the "Preferences" menu 2. Select "Browse Packages\u2026" ''', installed_dir, strip=False ) # If installed unpacked if os.path.exists(os.path.join(sys_path.packages_path, installed_dir)): message += text.format( u''' 3. Rename the folder "%s" to "Package Control" 4. Restart Sublime Text
def plugin_loaded(): # Make sure the user's locale can handle non-ASCII. A whole bunch of # work was done to try and make PackagesManager 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\u2013ais")) except (UnicodeEncodeError): message = text.format( u''' PackagesManager Your system's locale is set to a value that can not handle non-ASCII characters. PackagesManager can not properly work unless this is fixed. On Linux, please reference your distribution's docs for information on properly setting the LANG and LC_CTYPE environmental variables. As a temporary work-around, you can launch Sublime Text from the terminal with: LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 sublime_text ''' ) sublime.error_message(message) return # This handles fixing unicode issues with tempdirs on ST2 for Windows tempfile_unicode_patch() # Ensure we have a Cache dir we can use for temporary data if not os.path.exists(sys_path.pc_cache_dir()): os.makedirs(sys_path.pc_cache_dir(), exist_ok=True) # Clean up the old HTTP cache dir legacy_http_cache = os.path.join(sublime.packages_path(), u'User', u'Package Control.cache') http_cache = os.path.join(sys_path.pc_cache_dir(), 'http_cache') if os.path.exists(legacy_http_cache): if not os.path.exists(http_cache): console_write( u''' Moving HTTP cache data into "Cache/Package Control/http_cache/" ''' ) shutil.move(legacy_http_cache, http_cache) else: console_write( u''' Removing old HTTP cache data" ''' ) shutil.rmtree(legacy_http_cache) # Clean up old CA bundle paths legacy_ca_filenames = [ 'Package Control.system-ca-bundle', 'Package Control.merged-ca-bundle', 'oscrypto-ca-bundle.crt' ] for legacy_ca_filename in legacy_ca_filenames: legacy_ca_path = os.path.join(sublime.packages_path(), 'User', legacy_ca_filename) if os.path.exists(legacy_ca_path): os.unlink(legacy_ca_path) pc_settings = sublime.load_settings(pc_settings_filename()) if not pc_settings.get('bootstrapped'): console_write( u''' Not running package cleanup since bootstrapping is not yet complete ''' ) else: # 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)