annotate buttercup/buttercup.py @ 46:cee8bf9cc5a2

starting down the road towards flowerbed
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 14 May 2013 16:57:53 -0700
parents 693f209fdbaa
children c99fbe84c3c2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 """
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2 the flower blooming to k0s.org
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 """
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4
30
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
5 import os
33
f3878c2f7032 add neglected import
Jeff Hammel <jhammel@mozilla.com>
parents: 31
diff changeset
6 import source
30
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
7 try:
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
8 from subprocess import check_call as call
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
9 except ImportError:
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
10 from subprocess import call
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
11
18
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12 class Buttercup(object):
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
13
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
14 # k0sware software
46
cee8bf9cc5a2 starting down the road towards flowerbed
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
15 # TODO: make this a `package` (or more likely `python-package`)
cee8bf9cc5a2 starting down the road towards flowerbed
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
16 # subtype
18
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
17 HG='http://k0s.org/hg'
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
18 PACKAGES=['bitsyapps',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
19 'bitsyauth',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
20 'bitsyblog',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
21 'bitsytweet',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
22 'buttercup',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
23 'clwapp',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
24 'commentator',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
25 'contenttransformer',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
26 'cropresize',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
27 'decoupage',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
28 'emaildispatcher',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
29 'genshi_view',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
30 'hgpaste',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
31 'lxmlmiddleware',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
32 'martINI',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
33 'montage',
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
34 'pyloader',
46
cee8bf9cc5a2 starting down the road towards flowerbed
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
35 'redirector',
39
920afc079905 add the relocator package
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
36 'relocator',
36
2aa78e65d882 add svgsitemap to deps
Jeff Hammel <jhammel@mozilla.com>
parents: 33
diff changeset
37 'svgsitemap',
38
1744fe69a129 add uploader to requirements
Jeff Hammel <jhammel@mozilla.com>
parents: 37
diff changeset
38 'uploader',
18
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
39 'webob_view',
37
8d67dbd068cd add wsgintegrate to required software
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
40 'wordstream',
8d67dbd068cd add wsgintegrate to required software
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
41 'wsgintegrate']
18
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
42
30
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
43 def __init__(self, srcdir):
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
44 self.srcdir = srcdir
44
693f209fdbaa notes to self
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
45
693f209fdbaa notes to self
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
46 # TODO: this should all go in a `pip` requirements file
693f209fdbaa notes to self
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
47
693f209fdbaa notes to self
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
48 # base webapps and dependencies
31
f6b768417d27 now listing kinda works
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
49 self.sources = {'hg': ['%s/%s' % (self.HG, package)
41
38aa1d47c461 add a source
Jeff Hammel <jhammel@mozilla.com>
parents: 39
diff changeset
50 for package in self.PACKAGES ]}
44
693f209fdbaa notes to self
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
51 self.sources['git'] = ['git://github.com/mozilla/toolbox.git']
693f209fdbaa notes to self
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
52
693f209fdbaa notes to self
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
53 # extra tools
42
c008855cf3a9 fix typo
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
54 self.sources['hg'].append('http://k0s.org/mozilla/hg/licenser')
18
151862a0a711 begin restructuring to something more modular and extensible
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
55
30
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
56 def install(self):
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
57 """install all software needed for this flower"""
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
58 source_objs = source.sources(self.sources, srcdir=self.srcdir)
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
59 for source_obj in source_objs:
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
60 source_obj() # clone/update the software
25
a54543838686 add test for source demunging
Jeff Hammel <jhammel@mozilla.com>
parents: 18
diff changeset
61
30
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
62 def setup(self, source_objs=None):
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
63 """setup python packages for development"""
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
64 if source_objs is None:
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
65 source_objs = source.sources(self.sources, srcdir=self.srcdir)
44
693f209fdbaa notes to self
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
66 for source_obj in source_objs:
30
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
67 if os.path.exists(os.path.join(source_obj.directory(), 'setup.py')):
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
68 call(['python', 'setup.py', 'develop'], cwd=source_obj.directory())
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
69
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
70 def deploy(self):
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
71 self.install()
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
72 self.setup()
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
73
6089d6ec745a should now have a working flower; will test when i get internets again
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
74 __call__ = deploy