Mercurial > hg > buttercup
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 |
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 | 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 | 36 'relocator', |
36 | 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 | 45 |
46 # TODO: this should all go in a `pip` requirements file | |
47 | |
48 # base webapps and dependencies | |
31 | 49 self.sources = {'hg': ['%s/%s' % (self.HG, package) |
41 | 50 for package in self.PACKAGES ]} |
44 | 51 self.sources['git'] = ['git://github.com/mozilla/toolbox.git'] |
52 | |
53 # extra tools | |
42 | 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 | 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 |