Mercurial > hg > config
annotate python/install_config.py @ 379:61a3c07e9f7a
kill reject files
| author | Jeff Hammel <jhammel@mozilla.com> | 
|---|---|
| date | Thu, 25 Jul 2013 03:36:24 -0700 | 
| parents | 06fcec56e8fe | 
| children | 705dc5cfd68d | 
| rev | line source | 
|---|---|
| 1 | 1 #!/usr/bin/env python | 
| 
234
 
761e7dfc675e
updates from most recent usage
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
219 
diff
changeset
 | 
2 | 
| 1 | 3 """ | 
| 4 installs config to a user's home directory | |
| 5 this can be done with | |
| 16 | 6 curl http://k0s.org/hg/config/raw-file/tip/python/install_config.py | python | 
| 1 | 7 """ | 
| 8 | |
| 9 SRC='http://k0s.org/hg/config' | |
| 218 | 10 | 
| 11 import imp | |
| 1 | 12 import os | 
| 
131
 
52cf3e146a4c
make the install script slightly nicer
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
130 
diff
changeset
 | 
13 import subprocess | 
| 6 | 14 import sys | 
| 
131
 
52cf3e146a4c
make the install script slightly nicer
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
130 
diff
changeset
 | 
15 | 
| 
 
52cf3e146a4c
make the install script slightly nicer
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
130 
diff
changeset
 | 
16 # go home | 
| 
14
 
ac34d580c6d7
make symbolic links when necessary (should generalize)
 
k0s <k0scist@gmail.com> 
parents: 
7 
diff
changeset
 | 
17 HOME=os.environ['HOME'] | 
| 
 
ac34d580c6d7
make symbolic links when necessary (should generalize)
 
k0s <k0scist@gmail.com> 
parents: 
7 
diff
changeset
 | 
18 os.chdir(HOME) | 
| 1 | 19 | 
| 
131
 
52cf3e146a4c
make the install script slightly nicer
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
130 
diff
changeset
 | 
20 commands = [ # make the home directory a repository | 
| 
251
 
c37750a70f94
no need for subversion config anymore
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
245 
diff
changeset
 | 
21 ['hg', 'init'], | 
| 
 
c37750a70f94
no need for subversion config anymore
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
245 
diff
changeset
 | 
22 ['hg', 'pull', SRC], | 
| 
 
c37750a70f94
no need for subversion config anymore
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
245 
diff
changeset
 | 
23 ['hg', 'update', '-C'], | 
| 
 
c37750a70f94
no need for subversion config anymore
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
245 
diff
changeset
 | 
24 ] | 
| 6 | 25 | 
| 
29
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
26 def execute(*commands): | 
| 
131
 
52cf3e146a4c
make the install script slightly nicer
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
130 
diff
changeset
 | 
27 """execute a series of commands""" | 
| 
29
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
28 for command in commands: | 
| 
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
29 print ' '.join(command) | 
| 
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
30 code = subprocess.call(command) | 
| 
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
31 if code: | 
| 
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
32 sys.exit(code) | 
| 
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
33 | 
| 
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
34 execute(*commands) | 
| 
131
 
52cf3e146a4c
make the install script slightly nicer
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
130 
diff
changeset
 | 
35 | 
| 268 | 36 | 
| 218 | 37 # get the which command | 
| 38 sys.path.append(os.path.join(HOME, 'python')) | |
| 39 from which import which | |
| 40 | |
| 41 | |
| 
131
 
52cf3e146a4c
make the install script slightly nicer
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
130 
diff
changeset
 | 
42 # make a (correct) .hg/hgrc file for $HOME | 
| 218 | 43 hgrc = """[paths] | 
| 44 default = http://k0s.org/hg/config | |
| 45 default-push = ssh://k0s.org/hg/config | |
| 46 """ | |
| 47 f = file('.hg/hgrc', 'w') | |
| 48 f.write(hgrc) | |
| 49 f.close() | |
| 1 | 50 | 
| 
29
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
51 def install_develop(package): | 
| 
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
52 src = 'http://k0s.org/hg/%s' % package | 
| 
41
 
eda848575afb
chdir to the directory before running python setup.py develop as this seems to be necessary
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
36 
diff
changeset
 | 
53 directory = '%s/src/%s' % (package, package) | 
| 
29
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
54 commands = [ ['virtualenv/virtualenv.py', package], | 
| 44 | 55 ['mkdir', '-p', directory ], | 
| 56 ['hg', 'clone', src, directory] ] | |
| 
29
 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
22 
diff
changeset
 | 
57 execute(*commands) | 
| 
41
 
eda848575afb
chdir to the directory before running python setup.py develop as this seems to be necessary
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
36 
diff
changeset
 | 
58 old_directory = os.getcwd() | 
| 
 
eda848575afb
chdir to the directory before running python setup.py develop as this seems to be necessary
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
36 
diff
changeset
 | 
59 os.chdir(directory) | 
| 
 
eda848575afb
chdir to the directory before running python setup.py develop as this seems to be necessary
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
36 
diff
changeset
 | 
60 command = ['../../bin/python', 'setup.py', 'develop'] | 
| 
 
eda848575afb
chdir to the directory before running python setup.py develop as this seems to be necessary
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
36 
diff
changeset
 | 
61 execute(command) | 
| 
 
eda848575afb
chdir to the directory before running python setup.py develop as this seems to be necessary
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
36 
diff
changeset
 | 
62 os.chdir(old_directory) | 
| 218 | 63 | 
| 64 # do git stuff | |
| 65 git = which('git') | |
| 66 if git: | |
| 67 # get virtual env | |
| 219 | 68 virtualenv_commands = [['git', 'clone', 'https://github.com/pypa/virtualenv.git'], | 
| 218 | 69 ['ln', '-s', HOME + '/virtualenv/virtualenv.py', HOME + '/bin/']] | 
| 70 execute(*virtualenv_commands) | |
| 6 | 71 | 
| 218 | 72 # setup git's global ignore, since git is silly about this | 
| 73 # and doesn't look for the file in the right place | |
| 74 execute(['git', 'config', '--global', 'core.excludesfile', os.path.join(HOME, '.gitignore')]) | |
| 
32
 
f878d9f62211
fix syntax error and actually execute the commands
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
31 
diff
changeset
 | 
75 | 
| 218 | 76 # install some python | 
| 77 install_develop('smartopen') | |
| 78 install_develop('silvermirror') # XXX this won't actually work since python-dev isn't installed; install it first | |
| 79 | |
| 80 postinstall_commands = [ ['ln', '-s', os.path.join(HOME, 'smartopen', 'bin', 'smartopen'), os.path.join(HOME, 'bin', 'smartopen') ], | |
| 81 ['ln', '-s', os.path.join(HOME, 'silvermirror', 'bin', 'silvermirror'), os.path.join(HOME, 'bin', 'silvermirror') ], | |
| 82 ] | |
| 83 execute(*postinstall_commands) | |
| 
234
 
761e7dfc675e
updates from most recent usage
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
219 
diff
changeset
 | 
84 else: | 
| 
 
761e7dfc675e
updates from most recent usage
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
219 
diff
changeset
 | 
85 print "git not installed" | 
| 
45
 
069a739d88ad
get fluxbox menu from a webpage, i.e. http://k0s.org/programs.html
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
43 
diff
changeset
 | 
86 | 
| 
36
 
d83f35b9b799
adding xclip package and echo which packages need installation
 
Jeff Hammel <k0scist@gmail.com> 
parents: 
34 
diff
changeset
 | 
87 # - ubuntu packages to install: | 
| 
245
 
aa31dc7ccb66
add irssi to packages to install
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
234 
diff
changeset
 | 
88 PACKAGES="mercurial unison fluxbox antiword xclip graphviz python-dev python-lxml curl arandr git emacs irssi" | 
| 43 | 89 print "Ensure the following packages are installed:" | 
| 218 | 90 print "sudo apt-get install %s" % PACKAGES | 
