summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--combox/config.py31
1 files changed, 22 insertions, 9 deletions
diff --git a/combox/config.py b/combox/config.py
index adaecf5..005f8e1 100644
--- a/combox/config.py
+++ b/combox/config.py
@@ -47,30 +47,43 @@ import hashlib
import sys
import stat
+def get_secret():
+ "Gets the pass phrase from std. input."
+ return getpass.getpass('passphrase: ')
-def config_cb():
+
+def get_stdin(prompt):
+ "Gets a string from std. input."
+
+ prompt = "%s: " % (prompt)
+
+ return raw_input(prompt)
+
+
+def config_cb(config_dir = os.path.join(os.getenv('HOME'),'.combox/'),
+ pass_func = get_secret,
+ input_func = get_stdin):
"""
Configure combox, if not already configured.
"""
- # First whether combox is already configured.
- config_dir = os.path.join(os.getenv('HOME'),'.combox/')
+
if not os.path.exists(config_dir):
# Create combox dir and configure.
os.mkdir(config_dir, 0700)
config_file_path = os.path.join(config_dir, 'config.yaml')
config_info = {}
- config_info['combox_dir'] = raw_input('path to combox directory: ')
- config_info['topsecret'] = hashlib.sha224(getpass.getpass('passphrase: ')).hexdigest()
+ config_info['combox_dir'] = input_func('path to combox directory')
+ config_info['topsecret'] = hashlib.sha224(pass_func()).hexdigest()
- no_nodes = int(raw_input('number of nodes: '))
+ no_nodes = int(input_func('number of nodes'))
nodes = {}
for i in range(no_nodes):
- node_name = raw_input('node %d name: ' % i)
+ node_name = input_func('node %d name' % i)
nodes[node_name] = {}
- nodes[node_name]['path'] = raw_input('node %d path: ' % i)
- nodes[node_name]['size'] = raw_input('node %d size (in mega bytes): ' % i)
+ nodes[node_name]['path'] = input_func('node %d path' % i)
+ nodes[node_name]['size'] = input_func('node %d size (in mega bytes)' % i)
nodes[node_name]['available'] = nodes[node_name]['size']
config_info['nodes_info'] = nodes