From a89b201fc78f6196f01017da5baf927cb3e1bca1 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Thu, 11 May 2023 12:11:30 -0400 Subject: [PATCH] Added warning if relevant clipboard tool is not installed Former-commit-id: 2d89d7954a6d1c0133f235862e78b1bcfdcef9ff Former-commit-id: 988a751409f02e2b065c461d4c3f723472ee725a --- lib/sshyp.py | 13 +++++++++++++ package.sh | 7 +++++++ port-jobs/CLIPTOOL.py | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100755 port-jobs/CLIPTOOL.py diff --git a/lib/sshyp.py b/lib/sshyp.py index df1156a..15eb761 100755 --- a/lib/sshyp.py +++ b/lib/sshyp.py @@ -329,6 +329,19 @@ def tweak(): _lines += 1 _config_file.write('n') print(f"{_divider}configuration complete\n") + + # PORT START CLIPTOOL + # check for clipboard tool and display warning if missing + if uname()[0] in ('Linux', 'FreeBSD'): + if 'WAYLAND_DISPLAY' in environ: + _display_server, _clipboard_tool = 'Wayland', 'wl-clipboard' + else: + _display_server, _clipboard_tool = 'X11', 'xclip' + from shutil import which + if which(_clipboard_tool) is None: + print(f'\u001b[38;5;9mwarning: you are using {_display_server} and "{_clipboard_tool}" is not present -' + f'\ncopying entry fields will not function until "{_clipboard_tool}" is installed\u001b[0m\n') + # PORT END CLIPTOOL # prints help text based on argument diff --git a/package.sh b/package.sh index 7e223d2..d563fdd 100755 --- a/package.sh +++ b/package.sh @@ -17,6 +17,7 @@ _create_generic_linux() { # START PORT cp -r lib/. port-jobs/working/ cd port-jobs + ./CLIPTOOL.py LINUX ./CLIPBOARD.py LINUX ./UNAME.py LINUX ./COMMENTS.py ALL @@ -152,6 +153,7 @@ urls { cd port-jobs ./SHEBANG.sh ./RMSERVER.py + ./CLIPTOOL.py ./CLIPBOARD.py HAIKU ./COMMENTS.py ALL ./UNAME.py TMP @@ -198,9 +200,11 @@ Installed-Size: 71680 cp -r lib/. port-jobs/working/ cd port-jobs if [ "$1" = 'Debian' ]; then + ./CLIPTOOL.py LINUX ./CLIPBOARD.py LINUX special=UBUNTU else + ./CLIPTOOL.py ./CLIPBOARD.py WSL special=WSL-ONLY-UBUNTU fi @@ -246,6 +250,7 @@ Installed-Size: 71680 # START PORT cp -r lib/. port-jobs/working/ cd port-jobs + ./CLIPTOOL.py ./CLIPBOARD.py TERMUX ./UNAME.py TERMUX ./COMMENTS.py ALL @@ -303,6 +308,7 @@ cp -r %%{_sourcedir}/usr %%{buildroot} # START PORT cp -r lib/. port-jobs/working/ cd port-jobs + ./CLIPTOOL.py LINUX ./CLIPBOARD.py LINUX ./UNAME.py LINUX ./COMMENTS.py ALL @@ -363,6 +369,7 @@ printf "/usr/bin/sshyp # START PORT cp -r lib/. port-jobs/working/ cd port-jobs + ./CLIPTOOL.py BSD ./CLIPBOARD.py TERMUX ./UNAME.py TMP ./COMMENTS.py ALL diff --git a/port-jobs/CLIPTOOL.py b/port-jobs/CLIPTOOL.py new file mode 100755 index 0000000..f856f3b --- /dev/null +++ b/port-jobs/CLIPTOOL.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +import re +from sys import argv, exit as s_exit + +# read arguments +arguments = argv[1:] + +# define PORT target +string1 = '# PORT START CLIPTOOL' +string2 = '# PORT END CLIPTOOL' + +# define replacement text depending on arguments +if len(arguments) > 0: + regex = re.compile(f"{string1}.*?{string2}", re.DOTALL) + replacement = """# check for clipboard tool and display warning if missing + if 'WAYLAND_DISPLAY' in environ: + _display_server, _clipboard_tool = 'Wayland', 'wl-clipboard' + else: + _display_server, _clipboard_tool = 'X11', 'xclip' + from shutil import which + if which(_clipboard_tool) is None: + print(f'''\u001b[38;5;9mwarning: you are using {_display_server} and "{_clipboard_tool}" is not present - +copying entry fields will not function until "{_clipboard_tool}" is installed\u001b[0m + ''')""" +else: + regex = re.compile(f"{string1}.*?{string2}\n\n", re.DOTALL) + replacement = '' + +# read input file +text = open('working/sshyp.py', 'r').read() + +# find and replace the defined PORT target +new_text = re.sub(regex, replacement, text) + +# write updated text +open('working/sshyp.py', 'w').write(new_text)