-
Notifications
You must be signed in to change notification settings - Fork 2
/
configure.py
executable file
·79 lines (61 loc) · 2.32 KB
/
configure.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/env python
# Copyright (C) 2012 Juan Carlos Moreno <juancarlos.moreno at ecmanaged.com>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# In windows . is not on python path.
import random
import sys
import getopt
import os
from ecagent.config import SMConfigObj
root_dir = os.path.dirname(os.path.realpath(__file__))
os.chdir(root_dir)
if root_dir not in sys.path:
sys.path.append(root_dir)
# In windows . is not on python path.
if "." not in sys.path:
sys.path.append(".")
configure_account = None
configure_tags = None
try:
optlist, args = getopt.getopt(sys.argv[1:], 'a:t:', ["account=", "tags="])
except getopt.GetoptError:
print 'Please configure agent with ./configure.py --account=XXXXX --tags=XXX,XXX'
sys.exit(-1)
for option, value in optlist:
if option in ("-a", "--account"):
configure_account = value
elif option in ("-t", "--tags"):
configure_tags = value
if not configure_account and not configure_tags:
print 'Please configure agent with ./configure.py --account=XXXXX --tags=XXX'
sys.exit(-1)
root_dir = os.path.dirname(os.path.realpath(__file__))
os.chdir(root_dir)
# Parse config file or end execution
config_file = os.path.join(os.path.sep, root_dir, 'config', 'ecagent.cfg')
config_file_init = os.path.join(os.path.sep, root_dir, 'config', 'ecagent.cfg.init')
# manipulate configuration file
if not os.path.isfile(config_file):
config_file = config_file_init
if not os.path.isfile(config_file):
print 'Unable to read the config file at %s' % config_file
print 'Agent will now quit'
sys.exit(-1)
config = SMConfigObj(config_file)
if configure_account:
config['XMPP']['account'] = configure_account
if configure_tags:
config['XMPP']['tags'] = configure_tags
config.write()
print 'Manual configuration override succeeded.'