Mercurial > kallithea
annotate kallithea/bin/base.py @ 4208:ad38f9f93b3b kallithea-2.2.5-rebrand
Correct licensing information in individual files.
The top-level license file is now LICENSE.md.
Also, in various places where there should have been joint copyright holders
listed, a single copyright holder was listed. It does not appear easy to add
a link to a large list of copyright holders in these places, so it simply
refers to the fact that various authors hold copyright.
In future, if an easy method is discovered to link to a list from those
places, we should do so.
Finally, text is added to LICENSE.md to point to where the full list of
copyright holders is, and that Kallithea as a whole is GPLv3'd.
author | Bradley M. Kuhn <bkuhn@sfconservancy.org> |
---|---|
date | Wed, 21 May 2014 16:59:37 -0400 |
parents | d1addaf7a91e |
children | 1948ede028ef |
rev | line source |
---|---|
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
1 # -*- coding: utf-8 -*- |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
2 # This program is free software: you can redistribute it and/or modify |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
3 # it under the terms of the GNU General Public License as published by |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
4 # the Free Software Foundation, either version 3 of the License, or |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
5 # (at your option) any later version. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
6 # |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
7 # This program is distributed in the hope that it will be useful, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
10 # GNU General Public License for more details. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
11 # |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
12 # You should have received a copy of the GNU General Public License |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
13 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
14 """ |
4186
7e5f8c12a3fc
First step in two-part process to rename directories to kallithea.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4181
diff
changeset
|
15 kallithea.bin.base |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
16 ~~~~~~~~~~~~~~~~~~ |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
17 |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
18 Base utils for shell scripts |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
19 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
20 :created_on: May 09, 2013 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
21 :author: marcink |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
22 :copyright: (c) 2013 RhodeCode GmbH. |
4208
ad38f9f93b3b
Correct licensing information in individual files.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4187
diff
changeset
|
23 :license: GPLv3, see LICENSE.md for more details. |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
24 """ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
25 |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
26 import os |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
27 import sys |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
28 import random |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
29 import urllib2 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
30 import pprint |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
31 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
32 try: |
4186
7e5f8c12a3fc
First step in two-part process to rename directories to kallithea.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4181
diff
changeset
|
33 from kallithea.lib.ext_json import json |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
34 except ImportError: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
35 try: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
36 import simplejson as json |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
37 except ImportError: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
38 import json |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
39 |
4181
e5cb0a4e061a
Change command line tool config location to .config/kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4116
diff
changeset
|
40 CONFIG_NAME = '.config/kallithea' |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
41 FORMAT_PRETTY = 'pretty' |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
42 FORMAT_JSON = 'json' |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
43 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
44 |
3875
5a7d52cf084d
Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents:
3840
diff
changeset
|
45 def api_call(apikey, apihost, method=None, **kw): |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
46 """ |
3875
5a7d52cf084d
Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents:
3840
diff
changeset
|
47 Api_call wrapper for RhodeCode. |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
48 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
49 :param apikey: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
50 :param apihost: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
51 :param format: formatting, pretty means prints and pprint of json |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
52 json returns unparsed json |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
53 :param method: |
3875
5a7d52cf084d
Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents:
3840
diff
changeset
|
54 :returns: json response from server |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
55 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
56 def _build_data(random_id): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
57 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
58 Builds API data with given random ID |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
59 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
60 :param random_id: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
61 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
62 return { |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
63 "id": random_id, |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
64 "api_key": apikey, |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
65 "method": method, |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
66 "args": kw |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
67 } |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
68 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
69 if not method: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
70 raise Exception('please specify method name !') |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3875
diff
changeset
|
71 apihost = apihost.rstrip('/') |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
72 id_ = random.randrange(1, 9999) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
73 req = urllib2.Request('%s/_admin/api' % apihost, |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
74 data=json.dumps(_build_data(id_)), |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
75 headers={'content-type': 'text/plain'}) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
76 ret = urllib2.urlopen(req) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
77 raw_json = ret.read() |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
78 json_data = json.loads(raw_json) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
79 id_ret = json_data['id'] |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
80 if id_ret == id_: |
3875
5a7d52cf084d
Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents:
3840
diff
changeset
|
81 return json_data |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
82 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
83 else: |
3875
5a7d52cf084d
Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents:
3840
diff
changeset
|
84 _formatted_json = pprint.pformat(json_data) |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
85 raise Exception('something went wrong. ' |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
86 'ID mismatch got %s, expected %s | %s' % ( |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
87 id_ret, id_, _formatted_json)) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
88 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
89 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
90 class RcConf(object): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
91 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
92 RhodeCode config for API |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
93 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
94 conf = RcConf() |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
95 conf['key'] |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
96 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
97 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
98 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
99 def __init__(self, config_location=None, autoload=True, autocreate=False, |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
100 config=None): |
3840
dc4644865e8b
Implemented simple gist functionality ref #530.
Marcin Kuzminski <marcin@python-works.com>
parents:
3833
diff
changeset
|
101 HOME = os.getenv('HOME', os.getenv('USERPROFILE')) or '' |
dc4644865e8b
Implemented simple gist functionality ref #530.
Marcin Kuzminski <marcin@python-works.com>
parents:
3833
diff
changeset
|
102 HOME_CONF = os.path.abspath(os.path.join(HOME, CONFIG_NAME)) |
dc4644865e8b
Implemented simple gist functionality ref #530.
Marcin Kuzminski <marcin@python-works.com>
parents:
3833
diff
changeset
|
103 self._conf_name = HOME_CONF if not config_location else config_location |
3833
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
104 self._conf = {} |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
105 if autocreate: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
106 self.make_config(config) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
107 if autoload: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
108 self._conf = self.load_config() |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
109 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
110 def __getitem__(self, key): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
111 return self._conf[key] |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
112 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
113 def __nonzero__(self): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
114 if self._conf: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
115 return True |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
116 return False |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
117 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
118 def __eq__(self): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
119 return self._conf.__eq__() |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
120 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
121 def __repr__(self): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
122 return 'RcConf<%s>' % self._conf.__repr__() |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
123 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
124 def make_config(self, config): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
125 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
126 Saves given config as a JSON dump in the _conf_name location |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
127 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
128 :param config: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
129 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
130 update = False |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
131 if os.path.exists(self._conf_name): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
132 update = True |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
133 with open(self._conf_name, 'wb') as f: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
134 json.dump(config, f, indent=4) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
135 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
136 if update: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
137 sys.stdout.write('Updated config in %s\n' % self._conf_name) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
138 else: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
139 sys.stdout.write('Created new config in %s\n' % self._conf_name) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
140 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
141 def update_config(self, new_config): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
142 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
143 Reads the JSON config updates it's values with new_config and |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
144 saves it back as JSON dump |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
145 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
146 :param new_config: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
147 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
148 config = {} |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
149 try: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
150 with open(self._conf_name, 'rb') as conf: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
151 config = json.load(conf) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
152 except IOError, e: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
153 sys.stderr.write(str(e) + '\n') |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
154 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
155 config.update(new_config) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
156 self.make_config(config) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
157 |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
158 def load_config(self): |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
159 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
160 Loads config from file and returns loaded JSON object |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
161 """ |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
162 try: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
163 with open(self._conf_name, 'rb') as conf: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
164 return json.load(conf) |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
165 except IOError, e: |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
166 #sys.stderr.write(str(e) + '\n') |
5055dd385118
api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
167 pass |