Mercurial > hg > config
comparison python/install_config.py @ 578:c16238544fca
move towards modern system
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Mon, 20 Jan 2014 16:35:03 -0800 |
| parents | 9b9b66c2c1fc |
| children | f894bd779943 |
comparison
equal
deleted
inserted
replaced
| 577:9b9b66c2c1fc | 578:c16238544fca |
|---|---|
| 12 import subprocess | 12 import subprocess |
| 13 import sys | 13 import sys |
| 14 | 14 |
| 15 # config repository | 15 # config repository |
| 16 SRC='http://k0s.org/hg/config' | 16 SRC='http://k0s.org/hg/config' |
| 17 | |
| 18 # go home | |
| 19 HOME=os.environ['HOME'] | 17 HOME=os.environ['HOME'] |
| 20 os.chdir(HOME) | |
| 21 | 18 |
| 22 ### standalone functions | 19 ### standalone functions |
| 23 | 20 |
| 24 def execute(*commands): | 21 def execute(*commands): |
| 25 """execute a series of commands""" | 22 """execute a series of commands""" |
| 84 ['hg', 'init'], | 81 ['hg', 'init'], |
| 85 ['hg', 'pull', SRC], | 82 ['hg', 'pull', SRC], |
| 86 ['hg', 'update', '-C'], | 83 ['hg', 'update', '-C'], |
| 87 ] | 84 ] |
| 88 | 85 |
| 86 os.chdir(HOME) # go home | |
| 87 | |
| 89 execute(*commands) | 88 execute(*commands) |
| 90 | |
| 91 | 89 |
| 92 # make a (correct) .hg/hgrc file for $HOME | 90 # make a (correct) .hg/hgrc file for $HOME |
| 93 hgrc = """[paths] | 91 hgrc = """[paths] |
| 94 default = http://k0s.org/hg/config | 92 default = http://k0s.org/hg/config |
| 95 default-push = ssh://k0s.org/hg/config | 93 default-push = ssh://k0s.org/hg/config |
| 96 """ | 94 """ |
| 97 f = file('.hg/hgrc', 'w') | 95 with file(os.path.join(HOME, '.hg/hgrc', 'w')) as f: |
| 98 f.write(hgrc) | 96 f.write(hgrc) |
| 99 f.close() | |
| 100 | 97 |
| 101 # get the which command | 98 # get the which command |
| 102 sys.path.append(os.path.join(HOME, 'python')) | 99 sys.path.append(os.path.join(HOME, 'python')) |
| 103 from which import which | 100 from which import which |
| 104 | 101 |
| 124 ] | 121 ] |
| 125 execute(*postinstall_commands) | 122 execute(*postinstall_commands) |
| 126 else: | 123 else: |
| 127 print "git not installed" | 124 print "git not installed" |
| 128 | 125 |
| 129 # - ubuntu packages to install: | 126 class UbuntuPackages(Step): |
| 127 """ubuntu packages to install""" | |
| 128 | |
| 130 PACKAGES=["mercurial", "unison", "fluxbox", "antiword", "xclip", | 129 PACKAGES=["mercurial", "unison", "fluxbox", "antiword", "xclip", |
| 131 "graphviz", "python-dev", "python-lxml", "curl", "arandr", | 130 "graphviz", "python-dev", "python-lxml", "curl", "arandr", |
| 132 "git", "emacs", "irssi"] | 131 "git", "emacs", "irssi"] |
| 133 print "Ensure the following packages are installed:" | 132 print "Ensure the following packages are installed:" |
| 134 print "sudo apt-get install %s" % ' '.join(PACKAGES) | 133 print "sudo apt-get install %s" % ' '.join(PACKAGES) |
| 138 # ln -s /home/jhammel/web/sync.ini /home/jhammel/.silvermirror | 137 # ln -s /home/jhammel/web/sync.ini /home/jhammel/.silvermirror |
| 139 # - handle cases where config is autogenerated BUT you still want | 138 # - handle cases where config is autogenerated BUT you still want |
| 140 # to have some base (e.g. .gkrellm2/user_config) | 139 # to have some base (e.g. .gkrellm2/user_config) |
| 141 | 140 |
| 142 def main(args=sys.argv[1:]): | 141 def main(args=sys.argv[1:]): |
| 142 | |
| 143 # go home | |
| 144 os.chdir(HOME) | |
| 145 | |
| 146 # parse command line | |
| 143 usage = '%prog [options]' | 147 usage = '%prog [options]' |
| 144 parser = optparse.OptionParser(usage=usage, description=__doc__) | 148 parser = optparse.OptionParser(usage=usage, description=__doc__) |
| 149 parser.add_option('--deb', '--dpkg', '--debian-packages', | |
| 150 dest='debian_packages', | |
| 151 action='store_true', default=False, | |
| 152 help="display debian packages to install") | |
| 145 options, args = parser.parse_args() | 153 options, args = parser.parse_args() |
| 146 return | |
| 147 | 154 |
| 155 # plan steps | |
| 148 steps = [InitializeRepository] | 156 steps = [InitializeRepository] |
| 157 | |
| 158 # execute steps | |
| 149 for step in steps: | 159 for step in steps: |
| 150 pass # TODO | 160 pass # TODO |
| 151 | 161 |
| 152 if __name__ == '__main__': | 162 if __name__ == '__main__': |
| 153 main() | 163 main() |
