comparison python/install_config.py @ 590:e93b81d8a586

STUB: python/install_config.py
author Jeff Hammel <k0scist@gmail.com>
date Fri, 24 Jan 2014 17:53:23 -0800
parents ed99a36df540
children 542d329835ec
comparison
equal deleted inserted replaced
589:680071699d35 590:e93b81d8a586
18 import os 18 import os
19 import subprocess 19 import subprocess
20 import sys 20 import sys
21 21
22 # globals 22 # globals
23 SRC='http://k0s.org/hg/config' # config repository 23 SRC = 'http://k0s.org/hg/config' # config repository
24 HOME=os.environ['HOME'] 24 HOME = os.environ['HOME'] # home directory
25 25
26 ### standalone functions 26 ### standalone functions
27 27
28 def execute(*commands): 28 def execute(*commands, **kwargs):
29 """execute a series of commands""" 29 """execute a series of commands"""
30 for command in commands: 30 for command in commands:
31 print ' '.join(command) 31 print (subprocess.list2cmdline(' '.join(command))
32 code = subprocess.call(command) 32 code = subprocess.call(command, **kwargs)
33 if code:
34 sys.exit(code)
35 33
36 def install_develop(package): 34 def install_develop(package):
37 """install k0s.ware for development""" 35 """install k0s.ware for development"""
38 36
39 src = 'http://k0s.org/hg/%s' % package 37 src = 'http://k0s.org/hg/%s' % package
40 directory = '%s/src/%s' % (package, package) 38 directory = '%s/src/%s' % (package, package)
41 commands = [ ['virtualenv/virtualenv.py', package], 39 commands = [['virtualenv/virtualenv.py', package],
42 ['mkdir', '-p', directory ], 40 ['mkdir', '-p', directory ],
43 ['hg', 'clone', src, directory] ] 41 ['hg', 'clone', src, directory] ]
44 execute(*commands) 42 execute(*commands)
45 old_directory = os.getcwd() 43 old_directory = os.getcwd()
46 os.chdir(directory) 44 os.chdir(directory)
47 command = ['../../bin/python', 'setup.py', 'develop'] 45 command = ['../../bin/python', 'setup.py', 'develop']
48 execute(command) 46 execute(command)
49 os.chdir(old_directory) 47 os.chdir(old_directory)
50 48
51 ### generic step framework 49 ### generic step framework
50
51
52 52
53 class Step(object): 53 class Step(object):
54 @classmethod 54 @classmethod
55 def check(cls): 55 def check(cls):
56 """checks if the step may be run""" 56 """checks if the step may be run"""
90 # get the which command 90 # get the which command
91 sys.path.append(os.path.join(HOME, 'python')) 91 sys.path.append(os.path.join(HOME, 'python'))
92 from which import which 92 from which import which
93 93
94 #@requires(Command('git')) 94 #@requires(Command('git'))
95 class ConfigureGit(Step):
96 """configure git"""
97 commands = [['git', 'config', '--global', 'core.excludesfile', os.path.join(HOME, '.gitignore')]]
98
99 #@requires(Command('git'))
95 class InstallVirtualenv(Step): 100 class InstallVirtualenv(Step):
96 commands = [['git', 'clone', 'https://github.com/pypa/virtualenv.git'], 101 commands = [['git', 'clone', 'https://github.com/pypa/virtualenv.git'],
97 ['ln', '-s', 102 ['ln', '-s',
98 os.path.join(HOME, 'virtualenv/virtualenv.py'), 103 os.path.join(HOME, 'virtualenv/virtualenv.py'),
99 os.path.join(HOME, 'bin/')] 104 os.path.join(HOME, 'bin', 'virtualenv.py')]
100 ] 105 ]
106
107 class InstallKWare(Step):
108 """install k0s.ware"""
101 109
102 class DebianPackages(Step): 110 class DebianPackages(Step):
103 """ubuntu packages to install""" 111 """ubuntu packages to install"""
104 # TODO: actually install packages 112 # TODO: actually install packages
105 113
117 "emacs", 125 "emacs",
118 "irssi"] 126 "irssi"]
119 def __call__(self): 127 def __call__(self):
120 print "Ensure the following packages are installed:" 128 print "Ensure the following packages are installed:"
121 print "sudo apt-get install %s" % ' '.join(self.PACKAGES) 129 print "sudo apt-get install %s" % ' '.join(self.PACKAGES)
122 130
123 131
124 ### legacy -v- 132 ### legacy -v-
125 133
126 def legacy(): 134 def legacy():
127 """legacy : TO DEPRECATE!""" 135 """legacy : TO DEPRECATE!"""
128 136
129 # do git stuff 137 # do git stuff
130 git = which('git') 138 git = which('git')
131 if git: 139 if git:
132 140
133 # get virtual env
134 virtualenv_
135 execute(*virtualenv_commands)
136
137 # setup git's global ignore, since git is silly about this 141 # setup git's global ignore, since git is silly about this
138 # and doesn't look for the file in the right place 142 # and doesn't look for the file in the right place
139 execute(['git', 'config', '--global', 'core.excludesfile', os.path.join(HOME, '.gitignore')])
140 143
141 # install some python 144 # install some python
142 install_develop('smartopen') 145 install_develop('smartopen')
143 install_develop('silvermirror') # XXX this won't actually work since python-dev isn't installed; install it first 146 install_develop('silvermirror') # XXX this won't actually work since python-dev isn't installed; install it first
144 147