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: 
219diff
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: 
130diff
changeset | 13 import subprocess | 
| 6 | 14 import sys | 
| 131 
52cf3e146a4c
make the install script slightly nicer
 Jeff Hammel <jhammel@mozilla.com> parents: 
130diff
changeset | 15 | 
| 
52cf3e146a4c
make the install script slightly nicer
 Jeff Hammel <jhammel@mozilla.com> parents: 
130diff
changeset | 16 # go home | 
| 14 
ac34d580c6d7
make symbolic links when necessary (should generalize)
 k0s <k0scist@gmail.com> parents: 
7diff
changeset | 17 HOME=os.environ['HOME'] | 
| 
ac34d580c6d7
make symbolic links when necessary (should generalize)
 k0s <k0scist@gmail.com> parents: 
7diff
changeset | 18 os.chdir(HOME) | 
| 1 | 19 | 
| 131 
52cf3e146a4c
make the install script slightly nicer
 Jeff Hammel <jhammel@mozilla.com> parents: 
130diff
changeset | 20 commands = [ # make the home directory a repository | 
| 251 
c37750a70f94
no need for subversion config anymore
 Jeff Hammel <jhammel@mozilla.com> parents: 
245diff
changeset | 21 ['hg', 'init'], | 
| 
c37750a70f94
no need for subversion config anymore
 Jeff Hammel <jhammel@mozilla.com> parents: 
245diff
changeset | 22 ['hg', 'pull', SRC], | 
| 
c37750a70f94
no need for subversion config anymore
 Jeff Hammel <jhammel@mozilla.com> parents: 
245diff
changeset | 23 ['hg', 'update', '-C'], | 
| 
c37750a70f94
no need for subversion config anymore
 Jeff Hammel <jhammel@mozilla.com> parents: 
245diff
changeset | 24 ] | 
| 6 | 25 | 
| 29 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 Jeff Hammel <k0scist@gmail.com> parents: 
22diff
changeset | 26 def execute(*commands): | 
| 131 
52cf3e146a4c
make the install script slightly nicer
 Jeff Hammel <jhammel@mozilla.com> parents: 
130diff
changeset | 27 """execute a series of commands""" | 
| 29 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 Jeff Hammel <k0scist@gmail.com> parents: 
22diff
changeset | 28 for command in commands: | 
| 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 Jeff Hammel <k0scist@gmail.com> parents: 
22diff
changeset | 29 print ' '.join(command) | 
| 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 Jeff Hammel <k0scist@gmail.com> parents: 
22diff
changeset | 30 code = subprocess.call(command) | 
| 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 Jeff Hammel <k0scist@gmail.com> parents: 
22diff
changeset | 31 if code: | 
| 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 Jeff Hammel <k0scist@gmail.com> parents: 
22diff
changeset | 32 sys.exit(code) | 
| 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 Jeff Hammel <k0scist@gmail.com> parents: 
22diff
changeset | 33 | 
| 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 Jeff Hammel <k0scist@gmail.com> parents: 
22diff
changeset | 34 execute(*commands) | 
| 131 
52cf3e146a4c
make the install script slightly nicer
 Jeff Hammel <jhammel@mozilla.com> parents: 
130diff
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: 
130diff
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: 
22diff
changeset | 51 def install_develop(package): | 
| 
8344c7a9847c
install smartopen by default and some other cleanup (untested)
 Jeff Hammel <k0scist@gmail.com> parents: 
22diff
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: 
36diff
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: 
22diff
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: 
22diff
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: 
36diff
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: 
36diff
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: 
36diff
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: 
36diff
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: 
36diff
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: 
31diff
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: 
219diff
changeset | 84 else: | 
| 
761e7dfc675e
updates from most recent usage
 Jeff Hammel <jhammel@mozilla.com> parents: 
219diff
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: 
43diff
changeset | 86 | 
| 36 
d83f35b9b799
adding xclip package and echo which packages need installation
 Jeff Hammel <k0scist@gmail.com> parents: 
34diff
changeset | 87 # - ubuntu packages to install: | 
| 245 
aa31dc7ccb66
add irssi to packages to install
 Jeff Hammel <jhammel@mozilla.com> parents: 
234diff
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 | 
