From 5909e7330bd6e215090bded763b9aa44ce838845 Mon Sep 17 00:00:00 2001 From: r4sas Date: Mon, 22 Jun 2020 11:22:21 +0000 Subject: [PATCH] validate config file for empty lines (closes #24) Signed-off-by: r4sas --- pbincli/actions.py | 8 ++++++++ pbincli/cli.py | 11 ++++++++--- setup.py | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/pbincli/actions.py b/pbincli/actions.py index 92677fa..00ae496 100644 --- a/pbincli/actions.py +++ b/pbincli/actions.py @@ -1,5 +1,13 @@ from pbincli.format import Paste from pbincli.utils import PBinCLIError +import signal + +def signal_handler(sig, frame): + print('Keyboard interrupt received, terminating...') + exit(0) + +signal.signal(signal.SIGINT, signal_handler) + def send(args, api_client, settings=None): from pbincli.api import Shortener diff --git a/pbincli/cli.py b/pbincli/cli.py index e6be995..0a54182 100755 --- a/pbincli/cli.py +++ b/pbincli/cli.py @@ -3,7 +3,7 @@ import os, sys, argparse import pbincli.actions from pbincli.api import PrivateBin -from pbincli.utils import PBinCLIException, validate_url +from pbincli.utils import PBinCLIException, PBinCLIError, validate_url CONFIG_PATHS = [os.path.join(".", "pbincli.conf", ), os.path.join(os.getenv("HOME") or "~", ".config", "pbincli", "pbincli.conf") ] @@ -13,8 +13,13 @@ def read_config(filename): settings = {} with open(filename) as f: for l in f.readlines(): - key, value = l.strip().split("=") - settings[key.strip()] = value.strip() + if len(l.strip()) == 0: + continue + try: + key, value = l.strip().split("=") + settings[key.strip()] = value.strip() + except ValueError as pe: + PBinCLIError("Unable to parse config file, please check it for errors.") return settings diff --git a/setup.py b/setup.py index d0440e7..e320ba7 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ setup( long_description_content_type='text/x-rst', author='R4SAS', author_email='r4sas@i2pmail.org', - url='https://github.com/r4sas/PBinCLI', + url='https://github.com/r4sas/PBinCLI/', keywords='privatebin cryptography security', license='MIT', classifiers=[