Mercurial > hg > config
comparison python/install_config.py @ 595:4b79ee6c8539
STUB: python/install_config.py
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Sun, 26 Jan 2014 22:06:06 -0800 |
| parents | 98ccb704e241 |
| children | fd50f457185c |
comparison
equal
deleted
inserted
replaced
| 594:98ccb704e241 | 595:4b79ee6c8539 |
|---|---|
| 11 # ln -s /home/jhammel/web/sync.ini /home/jhammel/.silvermirror | 11 # ln -s /home/jhammel/web/sync.ini /home/jhammel/.silvermirror |
| 12 # - handle cases where config is autogenerated BUT you still want | 12 # - handle cases where config is autogenerated BUT you still want |
| 13 # to have some base (e.g. .gkrellm2/user_config) | 13 # to have some base (e.g. .gkrellm2/user_config) |
| 14 # - scp k0s.org:~/web/sync.ini ~/.silvermirror | 14 # - scp k0s.org:~/web/sync.ini ~/.silvermirror |
| 15 # - make idempotent | 15 # - make idempotent |
| 16 # - step to install (and setup) firefox | |
| 16 | 17 |
| 17 # imports | 18 # imports |
| 18 import imp | 19 import imp |
| 19 import optparse | 20 import optparse |
| 20 import os | 21 import os |
| 72 return cls.__name__ | 73 return cls.__name__ |
| 73 __str__ = name | 74 __str__ = name |
| 74 def __call__(self): | 75 def __call__(self): |
| 75 execute(*self.commands) | 76 execute(*self.commands) |
| 76 | 77 |
| 78 | |
| 77 class Command(object): | 79 class Command(object): |
| 78 """require a command""" | 80 """require a command""" |
| 81 | |
| 82 #@require(Virtualenv) | |
| 83 class InstallVirtualenv(Step): | |
| 84 """ABC for installing packages in a virtualenv""" | |
| 85 # TODO: move install_develop sctuff to here | |
| 86 | |
| 79 | 87 |
| 80 ### process steps | 88 ### process steps |
| 81 | 89 |
| 82 class InitializeRepository(Step): | 90 class InitializeRepository(Step): |
| 83 """make the home directory a repository""" | 91 """make the home directory a repository""" |
| 94 default = http://k0s.org/hg/config | 102 default = http://k0s.org/hg/config |
| 95 default-push = ssh://k0s.org/hg/config | 103 default-push = ssh://k0s.org/hg/config |
| 96 """ | 104 """ |
| 97 with file('.hg/hgrc', 'w') as f: | 105 with file('.hg/hgrc', 'w') as f: |
| 98 f.write(hgrc) | 106 f.write(hgrc) |
| 107 | |
| 99 def __call__(self): | 108 def __call__(self): |
| 100 Step.__call__(self) | 109 Step.__call__(self) |
| 101 self.write_hgrc() | 110 self.write_hgrc() |
| 102 | 111 |
| 103 # get the which command | 112 # get the which command |
| 105 from which import which | 114 from which import which |
| 106 | 115 |
| 107 #@requires(Command('git')) | 116 #@requires(Command('git')) |
| 108 class ConfigureGit(Step): | 117 class ConfigureGit(Step): |
| 109 """configure git""" | 118 """configure git""" |
| 110 commands = [['git', 'config', '--global', 'core.excludesfile', os.path.join(HOME, '.gitignore')]] | 119 commands = [ |
| 120 # setup git's global ignore, since git is silly about this | |
| 121 # and doesn't look for the file in the right place | |
| 122 ['git', 'config', '--global', 'core.excludesfile', os.path.join(HOME, '.gitignore')] | |
| 123 ] | |
| 111 | 124 |
| 112 #@requires(Command('git')) | 125 #@requires(Command('git')) |
| 113 class InstallVirtualenv(Step): | 126 class InstallVirtualenv(Step): |
| 114 commands = [['git', 'clone', 'https://github.com/pypa/virtualenv.git'], | 127 commands = [['git', 'clone', 'https://github.com/pypa/virtualenv.git'], |
| 115 ['ln', '-s', | 128 ['ln', '-s', |
| 116 os.path.join(HOME, 'virtualenv/virtualenv.py'), | 129 os.path.join(HOME, 'virtualenv/virtualenv.py'), |
| 117 os.path.join(HOME, 'bin', 'virtualenv.py')] | 130 os.path.join(HOME, 'bin', 'virtualenv.py')] |
| 118 ] | 131 ] |
| 119 | 132 |
| 120 class InstallKWare(Step): | 133 class InstallKWare(In): |
| 121 """install k0s.ware""" | 134 """install k0s.ware""" |
| 135 # TODO | |
| 136 # from legacy | |
| 137 # # install some python | |
| 138 # install_develop('smartopen') | |
| 139 # install_develop('silvermirror') # XXX this won't actually work since python-dev isn't installed; install it first | |
| 140 | |
| 141 # postinstall_commands = [['ln', '-s', os.path.join(HOME, 'smartopen', 'bin', 'smartopen'), os.path.join(HOME, 'bin', 'smartopen') ], | |
| 142 # ['ln', '-s', os.path.join(HOME, 'silvermirror', 'bin', 'silvermirror'), os.path.join(HOME, 'bin', 'silvermirror') ], | |
| 143 # ] | |
| 144 # execute(*postinstall_commands) | |
| 145 | |
| 122 | 146 |
| 123 class DebianPackages(Step): | 147 class DebianPackages(Step): |
| 124 """ubuntu packages to install""" | 148 """ubuntu packages to install""" |
| 125 # TODO: actually install packages | 149 # TODO: actually install packages |
| 126 | 150 |
| 157 | 181 |
| 158 # do git stuff | 182 # do git stuff |
| 159 git = which('git') | 183 git = which('git') |
| 160 if git: | 184 if git: |
| 161 | 185 |
| 162 # setup git's global ignore, since git is silly about this | |
| 163 # and doesn't look for the file in the right place | |
| 164 | |
| 165 # install some python | |
| 166 install_develop('smartopen') | |
| 167 install_develop('silvermirror') # XXX this won't actually work since python-dev isn't installed; install it first | |
| 168 | |
| 169 postinstall_commands = [['ln', '-s', os.path.join(HOME, 'smartopen', 'bin', 'smartopen'), os.path.join(HOME, 'bin', 'smartopen') ], | |
| 170 ['ln', '-s', os.path.join(HOME, 'silvermirror', 'bin', 'silvermirror'), os.path.join(HOME, 'bin', 'silvermirror') ], | |
| 171 ] | |
| 172 execute(*postinstall_commands) | |
| 173 else: | 186 else: |
| 174 print "git not installed" | 187 print "git not installed" |
| 175 | 188 |
| 176 | 189 |
| 177 ### CLI | 190 ### CLI |
