forked from jacks-bush/ironpkg_installer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ironpkg-1.0.0.py
56 lines (48 loc) · 42.1 KB
/
ironpkg-1.0.0.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
"""\
Self installs IronPkg into the current IronPython environment.
egg: ironpkg-1.0.0-1.egg
md5: 41787f5a12384e482e8e9f1d90f8bcdc
Options:
-h, --help show this help message and exit
--install self install
"""
import os
import sys
import base64
import hashlib
import tempfile
import zipfile
from os.path import dirname, isdir, join
b64eggdata = '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'
def unzip(zip_file, dir_path):
"""Unzip the zip_file into the directory dir_path."""
z = zipfile.ZipFile(zip_file)
for name in z.namelist():
if name.endswith('/'):
continue
path = join(dir_path, *name.split('/'))
if not isdir(dirname(path)):
os.makedirs(dirname(path))
fo = open(path, 'wb')
fo.write(z.read(name))
fo.close()
z.close()
def self_install():
tmp_dir = tempfile.mkdtemp()
egg_path = join(tmp_dir, 'ironpkg-1.0.0-1.egg')
data = base64.b64decode(b64eggdata)
assert hashlib.md5(data).hexdigest() == '41787f5a12384e482e8e9f1d90f8bcdc'
fo = open(egg_path, 'wb')
fo.write(data)
fo.close()
unzip(egg_path, tmp_dir)
sys.path.insert(0, tmp_dir)
import egginst
print "Bootstrapping:", egg_path
ei = egginst.EggInst(egg_path)
ei.install()
if __name__ == '__main__':
if '--install' in sys.argv:
self_install()
else:
print __doc__