#!/usr/bin/env python3 # # mercurial - scalable distributed SCM # # Copyright 2005-2007 Olivia Mackall # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. import os import sys libdir = '@LIBDIR@' if libdir != '@' 'LIBDIR' '@': if not os.path.isabs(libdir): libdir = os.path.join( os.path.dirname(os.path.realpath(__file__)), libdir ) libdir = os.path.abspath(libdir) sys.path.insert(0, libdir) # Make `pip install --user ...` packages available to the official Windows # build. Most py2 packaging installs directly into the system python # environment, so no changes are necessary for other platforms. The Windows # py2 package uses py2exe, which lacks a `site` module. Hardcode it according # to the documentation. if getattr(sys, 'frozen', None) == 'console_exe': vi = sys.version_info appdata = os.environ.get('APPDATA') if appdata: sys.path.append( os.path.join( appdata, 'Python', 'Python%d%d' % (vi[0], vi[1]), 'site-packages', ) ) try: from hgdemandimport import tracing except ImportError: sys.stderr.write( "abort: couldn't find mercurial libraries in [%s]\n" % ' '.join(sys.path) ) sys.stderr.write("(check your install and PYTHONPATH)\n") sys.exit(-1) with tracing.log('hg script'): # enable importing on demand to reduce startup time import hgdemandimport hgdemandimport.enable() from mercurial import dispatch dispatch.run()