Mercurial > hg > config
annotate python/install.py @ 929:7c4be71a560b default tip
remove old aliases
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Mon, 20 Oct 2025 15:22:19 -0700 |
| parents | e4746a046446 |
| children |
| rev | line source |
|---|---|
|
123
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1 def install_hg(sources): |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 """ |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 - sources : dict of hg sources to install: {'package': 'http://hg...'} |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 """ |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
5 try: |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
6 from subprocess import check_call as call |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 except: |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
8 from subprocess import call |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
9 |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
10 # see if you can find site-packages |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
11 import site |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
12 site_dir = os.path.abspath(os.path.dirname(site.__file__)) |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
13 site_packages = os.path.join(site_dir, 'site-packages') |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
14 if not (os.path.exists(site_packages) and os.path.isdir(site_packages)): |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
15 raise IOError("Cannot find site-packages directory") |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
16 |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
17 # figure out what you need to install |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
18 missing = set() |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
19 for source in sources: |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
20 try: |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
21 __import__(source) |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
22 except ImportError: |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
23 missing.add(source) |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
24 |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
25 # install it |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
26 for source in missing: |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
27 call(['hg', 'clone', sources[source], |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
28 os.path.join(site_packages, source)]) |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
29 |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
30 ### install unpackaged dependencies |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
31 if set(['install', 'develop']).intersection(sys.argv[1:]): |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
32 try: |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
33 install_hg(source) |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
34 except: |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
35 print 'Please make sure the source is installed:' |
|
e4746a046446
adding install script for inclusion in setup.py
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
36 print source |
