summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIryna Cherniavska <i.chernyavska@gmail.com>2014-12-30 14:38:57 -0800
committerIryna Cherniavska <i.chernyavska@gmail.com>2014-12-30 15:36:11 -0800
commitf2ecb2ed6752fa6acd476c47f1e17eb4f0c2f051 (patch)
tree1ee5e19c5c558e52658c3b51312a53f9979707a7
parent0d91b49c5b1da063bc502aebc8108b5108f5be7b (diff)
Fix for bug #12: Config reading is failing when an option is missing.
-rw-r--r--pgcli/config.py10
-rwxr-xr-xpgcli/main.py2
2 files changed, 10 insertions, 2 deletions
diff --git a/pgcli/config.py b/pgcli/config.py
index e54a165b..4ce9d824 100644
--- a/pgcli/config.py
+++ b/pgcli/config.py
@@ -6,12 +6,20 @@ except ImportError:
from configparser import ConfigParser
# from prompt_toolkit.contrib.pdb import set_trace
-def load_config(filename):
+
+def load_config(filename, default_filename=None):
filename = expanduser(filename)
parser = ConfigParser()
+
+ # parser.read will not fail in case of IOError,
+ # so let's not try/except here.
+ if default_filename:
+ parser.read(default_filename)
+
parser.read(filename)
return parser
+
def write_default_config(source, destination, overwrite=False):
#import pdb; pdb.set_trace()
#set_trace()
diff --git a/pgcli/main.py b/pgcli/main.py
index eed43e38..b45edc26 100755
--- a/pgcli/main.py
+++ b/pgcli/main.py
@@ -50,7 +50,7 @@ def cli(database, user, password, host, port):
write_default_config(default_config, '~/.pgclirc')
# Load config.
- config = load_config('~/.pgclirc')
+ config = load_config('~/.pgclirc', default_config)
smart_completion = config.getboolean('main', 'smart_completion')
multi_line = config.getboolean('main', 'multi_line')