From 1136383b9a2d0787018ff245f174a7f914cc8b4a Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Mon, 11 Apr 2022 19:15:50 +0200 Subject: [PATCH] Bugfix for cli folder names as -p or -g parameters --- cps/__init__.py | 4 ++-- cps/cli.py | 13 ++++++++++--- cps/constants.py | 2 ++ cps/gdriveutils.py | 11 ++++------- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cps/__init__.py b/cps/__init__.py index 0b912d23..62e45e72 100644 --- a/cps/__init__.py +++ b/cps/__init__.py @@ -91,7 +91,7 @@ if wtf_present: else: csrf = None -ub.init_db(cli.settingspath) +ub.init_db(cli.settings_path) # pylint: disable=no-member config = config_sql.load_configuration(ub.session) @@ -106,7 +106,7 @@ log = logger.create() from . import services db.CalibreDB.update_config(config) -db.CalibreDB.setup_db(config.config_calibre_dir, cli.settingspath) +db.CalibreDB.setup_db(config.config_calibre_dir, cli.settings_path) calibre_db = db.CalibreDB() diff --git a/cps/cli.py b/cps/cli.py index 36c03513..629fd76d 100644 --- a/cps/cli.py +++ b/cps/cli.py @@ -24,7 +24,7 @@ import socket from .constants import CONFIG_DIR as _CONFIG_DIR from .constants import STABLE_VERSION as _STABLE_VERSION from .constants import NIGHTLY_VERSION as _NIGHTLY_VERSION - +from .constants import DEFAULT_SETTINGS_FILE, DEFAULT_GDRIVE_FILE def version_info(): if _NIGHTLY_VERSION[1].startswith('$Format'): @@ -51,8 +51,15 @@ parser.add_argument('-d', action='store_true', help='Dry run of updater to check parser.add_argument('-r', action='store_true', help='Enable public database reconnect route under /reconnect') args = parser.parse_args() -settingspath = args.p or os.path.join(_CONFIG_DIR, "app.db") -gdpath = args.g or os.path.join(_CONFIG_DIR, "gdrive.db") +settings_path = args.p or os.path.join(_CONFIG_DIR, DEFAULT_SETTINGS_FILE) +gd_path = args.g or os.path.join(_CONFIG_DIR, DEFAULT_GDRIVE_FILE) + +if os.path.isdir(settings_path): + settings_path = os.path.join(settings_path, DEFAULT_SETTINGS_FILE) + +if os.path.isdir(gd_path): + gd_path = os.path.join(gd_path, DEFAULT_GDRIVE_FILE) + # handle and check parameter for ssl encryption certfilepath = None diff --git a/cps/constants.py b/cps/constants.py index f40d16b0..57c98be1 100644 --- a/cps/constants.py +++ b/cps/constants.py @@ -43,6 +43,8 @@ if HOME_CONFIG: else: CONFIG_DIR = os.environ.get('CALIBRE_DBPATH', BASE_DIR) +DEFAULT_SETTINGS_FILE = "app.db" +DEFAULT_GDRIVE_FILE = "gdrive.db" ROLE_USER = 0 << 0 ROLE_ADMIN = 1 << 0 diff --git a/cps/gdriveutils.py b/cps/gdriveutils.py index 6073777e..ee8ee953 100644 --- a/cps/gdriveutils.py +++ b/cps/gdriveutils.py @@ -35,10 +35,6 @@ except ImportError: from sqlalchemy.exc import OperationalError, InvalidRequestError, IntegrityError from sqlalchemy.sql.expression import text -#try: -# from six import __version__ as six_version -#except ImportError: -# six_version = "not installed" try: from httplib2 import __version__ as httplib2_version except ImportError: @@ -141,11 +137,12 @@ class Gdrive: def __init__(self): self.drive = getDrive(gauth=Gauth.Instance().auth) + def is_gdrive_ready(): return os.path.exists(SETTINGS_YAML) and os.path.exists(CREDENTIALS) -engine = create_engine('sqlite:///{0}'.format(cli.gdpath), echo=False) +engine = create_engine('sqlite:///{0}'.format(cli.gd_path), echo=False) Base = declarative_base() # Open session for database connection @@ -193,11 +190,11 @@ def migrate(): session.execute('ALTER TABLE gdrive_ids2 RENAME to gdrive_ids') break -if not os.path.exists(cli.gdpath): +if not os.path.exists(cli.gd_path): try: Base.metadata.create_all(engine) except Exception as ex: - log.error("Error connect to database: {} - {}".format(cli.gdpath, ex)) + log.error("Error connect to database: {} - {}".format(cli.gd_path, ex)) raise migrate()