From dee239a13c70ac9b2e1e612485b7bf6547ea90e7 Mon Sep 17 00:00:00 2001 From: Patrizio Bruno Date: Tue, 5 Apr 2022 19:20:00 +0100 Subject: [PATCH] gtk: search for config.ini in /etc/howdy --- howdy-gtk/src/onboarding.py | 13 +++++++------ howdy/debian/postinst | 7 ++++--- howdy/debian/preinst | 10 ++++++++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/howdy-gtk/src/onboarding.py b/howdy-gtk/src/onboarding.py index 4ed3406..e23257f 100644 --- a/howdy-gtk/src/onboarding.py +++ b/howdy-gtk/src/onboarding.py @@ -73,17 +73,18 @@ class OnboardingWindow(gtk.Window): break else: lib_site = None - - if lib_site is None: - self.downloadoutputlabel.set_text(_("Unable to find Howdy's installation location")) - return - if os.path.exists(lib_site + "/security/howdy/dlib-data/shape_predictor_5_face_landmarks.dat"): + if lib_site: + conf_path = lib_site + "/security/howdy" + else: + conf_path = "/etc/howdy" + + if os.path.exists(conf_path + "/dlib-data/shape_predictor_5_face_landmarks.dat"): self.downloadoutputlabel.set_text(_("Datafiles have already been downloaded!\nClick Next to continue")) self.enable_next() return - self.proc = subprocess.Popen("./install.sh", stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True, cwd=lib_site + "/security/howdy/dlib-data") + self.proc = subprocess.Popen("./install.sh", stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True, cwd=conf_path + "/howdy/dlib-data") self.download_lines = [] self.read_download_line() diff --git a/howdy/debian/postinst b/howdy/debian/postinst index 1cf7ab0..f92a7a7 100755 --- a/howdy/debian/postinst +++ b/howdy/debian/postinst @@ -102,9 +102,9 @@ if not os.path.exists("/tmp/howdy_picked_device"): newConf.write(configfile) # Install dlib data files if needed - if not os.path.exists("/lib/security/howdy/dlib-data/shape_predictor_5_face_landmarks.dat"): + if not os.path.exists("/lib/security/howdy/dlib-data/shape_predictor_5_face_landmarks.dat") and not os.path.exists("/etc/howdy/dlib-data/shape_predictor_5_face_landmarks.dat"): print("Attempting installation of missing data files") - handleStatus(subprocess.call(["./install.sh"], shell=True, cwd="/lib/security/howdy/dlib-data")) + handleStatus(subprocess.call(["./install.sh"], shell=True, cwd="/etc/howdy/dlib-data")) sys.exit(0) @@ -121,7 +121,7 @@ handleStatus(subprocess.call(["pip3", "install", "--upgrade", "numpy"])) log("Downloading and unpacking data files") # Run the bash script to download and unpack the .dat files needed -handleStatus(subprocess.call(["./install.sh"], shell=True, cwd="/lib/security/howdy/dlib-data")) +handleStatus(subprocess.call(["./install.sh"], shell=True, cwd="/etc/howdy/dlib-data")) log("Downloading dlib") @@ -208,6 +208,7 @@ print("Camera ID saved") # Secure the howdy folder handleStatus(sc(["chmod 744 -R /lib/security/howdy/"], shell=True)) +handleStatus(sc(["chmod 744 -R /etc/howdy/"], shell=True)) # Allow anyone to execute the python CLI os.chmod("/lib/security/howdy", 0o755) diff --git a/howdy/debian/preinst b/howdy/debian/preinst index a01628b..f0ac832 100755 --- a/howdy/debian/preinst +++ b/howdy/debian/preinst @@ -9,13 +9,19 @@ import sys if "upgrade" in sys.argv: # Try to copy the config file as a backup try: - subprocess.call(["cp /lib/security/howdy/config.ini /tmp/howdy_config_backup_v" + sys.argv[2] + ".ini"], shell=True) + if os.path.exists("/lib/security/howdy/config.ini") and not os.path.exists("/etc/howdy/config.ini"): + subprocess.call(["cp /lib/security/howdy/config.ini /tmp/howdy_config_backup_v" + sys.argv[2] + ".ini"], shell=True) + else os.path.exists("/etc/howdy/config.ini"): + subprocess.call(["cp /etc/howdy/config.ini /tmp/howdy_config_backup_v" + sys.argv[2] + ".ini"], shell=True) # Let the user know so he knows where to look on a failed install print("Backup of Howdy config file created in /tmp/howdy_config_backup_v" + sys.argv[2] + ".ini") except subprocess.CalledProcessError: try: - subprocess.call(["cp /etc/howdy/config.ini /tmp/howdy_config_backup_v" + sys.argv[2] + ".ini"], shell=True) + if os.path.exists("/lib/security/howdy/config.ini") and not os.path.exists("/etc/howdy/config.ini"): + subprocess.call(["cp /lib/security/howdy/config.ini /tmp/howdy_config_backup_v" + sys.argv[2] + ".ini"], shell=True) + else os.path.exists("/etc/howdy/config.ini"): + subprocess.call(["cp /etc/howdy/config.ini /tmp/howdy_config_backup_v" + sys.argv[2] + ".ini"], shell=True) # Let the user know so he knows where to look on a failed install print("Backup of Howdy config file created in /tmp/howdy_config_backup_v" + sys.argv[2] + ".ini")