Skip to content

Commit

Permalink
fix #8 and fix #10
Browse files Browse the repository at this point in the history
- start gpg-agent if needed
- don't even try to encrypt asymmetrically if no public keys are available
  • Loading branch information
Yann Büchau committed Jun 17, 2017
1 parent e7273c9 commit ea0a93f
Show file tree
Hide file tree
Showing 6 changed files with 165 additions and 32 deletions.
50 changes: 49 additions & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,7 @@ ac_subst_vars='LTLIBOBJS
LIBOBJS
configure_vars
makefile_include
gpg_connect_agent_bin
gpg_agent_bin
pinentry_gtk_2_bin
sha256sum_bin
Expand Down Expand Up @@ -685,7 +686,8 @@ md5sum_bin
sha1sum_bin
sha256sum_bin
pinentry_gtk_2_bin
gpg_agent_bin'
gpg_agent_bin
gpg_connect_agent_bin'


# Initialize some variables set by options.
Expand Down Expand Up @@ -1338,6 +1340,8 @@ Some influential environment variables:
path to pinentry-gtk-2
gpg_agent_bin
path to gpg-agent
gpg_connect_agent_bin
path to gpg-connect-agent
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Expand Down Expand Up @@ -2891,6 +2895,50 @@ test -n "$gpg_agent_bin" || as_fn_error $? "no gpg-agent (gnupg agent) found" "$
# Extract the first word of "gpg-connect-agent", so it can be a program name with args.
set dummy gpg-connect-agent; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_gpg_connect_agent_bin+:} false; then :
$as_echo_n "(cached) " >&6
else
case $gpg_connect_agent_bin in
[\\/]* | ?:[\\/]*)
ac_cv_path_gpg_connect_agent_bin="$gpg_connect_agent_bin" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_gpg_connect_agent_bin="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
gpg_connect_agent_bin=$ac_cv_path_gpg_connect_agent_bin
if test -n "$gpg_connect_agent_bin"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gpg_connect_agent_bin" >&5
$as_echo "$gpg_connect_agent_bin" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$gpg_connect_agent_bin" || as_fn_error $? "no gpg-connect-agent (gnupg agent control) found" "$LINENO" 5
# Check for Python modules
if test -z $PYTHON;
Expand Down
1 change: 1 addition & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ REQUIRE_PROG([sha1sum],[sha1sum_bin],[program])
REQUIRE_PROG([sha256sum],[sha256sum_bin],[program])
REQUIRE_PROG([pinentry-gtk-2],[pinentry_gtk_2_bin],[graphical password dialog])
REQUIRE_PROG([gpg-agent],[gpg_agent_bin],[gnupg agent])
REQUIRE_PROG([gpg-connect-agent],[gpg_connect_agent_bin],[gnupg agent control])

# Check for Python modules
AX_PYTHON_MODULE(lxml,fatal,python3)
Expand Down
2 changes: 2 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
thunar-custom-actions (0.0.16) UNRELEASED; urgency=medium

* add text to public key selection dialog
* stop asymmetric GPG encryption action if no keys are available
* start gpg-agent if needed

-- Yann Büchau <[email protected]> Thu, 15 Jun 2017 12:25:02 +0200

Expand Down
115 changes: 87 additions & 28 deletions locale/de/LC_MESSAGES/thunar-custom-actions.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-15 12:24+0200\n"
"PO-Revision-Date: 2017-06-15 12:27+0200\n"
"POT-Creation-Date: 2017-06-17 16:26+0200\n"
"PO-Revision-Date: 2017-06-17 16:22+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
Expand All @@ -18,6 +18,12 @@ msgstr ""
"X-Generator: Poedit 1.8.7.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: locale/tmp_only_uca_commands.sh:1 locale/tmp_only_uca_commands.sh:2
#: locale/tmp_only_uca_commands.sh:3
#, sh-format
msgid "Initialising gnupg..."
msgstr "Initialisiere gnupg..."

#: locale/tmp_only_uca_commands.sh:1 locale/tmp_only_uca_commands.sh:2
#, sh-format
msgid "Encrypting"
Expand All @@ -41,7 +47,14 @@ msgstr "$base überschreiben?"
#: locale/tmp_only_uca_commands.sh:14
#, sh-format
msgid "something went wrong copying the file $fileout over to $filefinalout."
msgstr "Etwas ist beim Kopieren der Datei $fileout nach $filefinalout schiefgegangen."
msgstr ""
"Etwas ist beim Kopieren der Datei $fileout nach $filefinalout schiefgegangen."

#: locale/tmp_only_uca_commands.sh:2
#, sh-format
msgid "Your local keyring does not contain any public keys."
msgstr ""
"Es befinden sich keine öffentlichen Schlüssel im lokalen Schlüsselbund."

#: locale/tmp_only_uca_commands.sh:2
#, sh-format
Expand Down Expand Up @@ -76,8 +89,13 @@ msgstr "Entschlüssele"

#: locale/tmp_only_uca_commands.sh:3
#, sh-format
msgid "Could not decrypt $filebase. Wrong password?"
msgstr "Konnte $filebase nicht entschlüsseln. Falsches Passwort?"
msgid "Could not decrypt $filebase."
msgstr "Konnte $filebase nicht entschlüsseln."

#: locale/tmp_only_uca_commands.sh:3
#, sh-format
msgid "Wrong password or no appropriate private key available?"
msgstr "Falsches Passwort oder kein passender privater Schlüssel verfügbar?"

#: locale/tmp_only_uca_commands.sh:4
#, sh-format
Expand Down Expand Up @@ -256,7 +274,8 @@ msgstr "Optimiere PDF"
#~ msgstr "Alle Signale entfernt"

#~ msgid "Attempt to connect action '{}' to unregistered signal '{}'."
#~ msgstr "Versuch, die Aktion '{}' zu unregistriertem Signal '{}' zu verbinden."
#~ msgstr ""
#~ "Versuch, die Aktion '{}' zu unregistriertem Signal '{}' zu verbinden."

#~ msgid "Connected action '{}' to signal '{}'"
#~ msgstr "Verbinde die Aktion '{}' zum Signal '{}'"
Expand All @@ -276,11 +295,15 @@ msgstr "Optimiere PDF"
#~ msgid "Attempt to emit unregistered signal '{}'"
#~ msgstr "Versuch, unregistriertes Signal '{}' zu emittieren"

#~ msgid "The current buffer is empty and no file is specified. No saving necessary."
#~ msgstr "Der Editor ist leer und keine Datei wurde angegeben. Speichern ist nicht notwendig."
#~ msgid ""
#~ "The current buffer is empty and no file is specified. No saving necessary."
#~ msgstr ""
#~ "Der Editor ist leer und keine Datei wurde angegeben. Speichern ist nicht "
#~ "notwendig."

#~ msgid "Nonexistant or no file specified. Saving necessary!"
#~ msgstr "Nichtexistente oder gar keine Datei angegeben. Speichern ist notwendig!"
#~ msgstr ""
#~ "Nichtexistente oder gar keine Datei angegeben. Speichern ist notwendig!"

#~ msgid "md5sum of file '{}' is '{}'"
#~ msgstr "md5-Summe der Datei '{}' is '{}'"
Expand Down Expand Up @@ -393,8 +416,13 @@ msgstr "Optimiere PDF"
#~ msgid "display ensemble"
#~ msgstr "Ensemble anzeigen"

#~ msgid "[slower] Based on the given day and amount tolerances, run an ensemble and display the 10% and 90% quantiles as darker shadow."
#~ msgstr "[langsamer] Auf Grundlage der Tages- und Betragstoleranzen wird ein Ensemble gerechnet und das 10%- und 90%-Quantil als dunkerer Schatten angezeigt."
#~ msgid ""
#~ "[slower] Based on the given day and amount tolerances, run an ensemble "
#~ "and display the 10% and 90% quantiles as darker shadow."
#~ msgstr ""
#~ "[langsamer] Auf Grundlage der Tages- und Betragstoleranzen wird ein "
#~ "Ensemble gerechnet und das 10%- und 90%-Quantil als dunkerer Schatten "
#~ "angezeigt."

#~ msgid "end date"
#~ msgstr "Enddatum"
Expand Down Expand Up @@ -429,11 +457,18 @@ msgstr "Optimiere PDF"
#~ msgid "There was a problem updating the graph."
#~ msgstr "Es gab ein Problem beim Aktualisieren des Graphen."

#~ msgid "[WARNING] There was a problem updating the graph. Please check the input!"
#~ msgstr "[WARNUNG] Es gab ein Problem beim Aktualisieren des Graphen. Bitte Eingabe überprüfen!"
#~ msgid ""
#~ "[WARNING] There was a problem updating the graph. Please check the input!"
#~ msgstr ""
#~ "[WARNUNG] Es gab ein Problem beim Aktualisieren des Graphen. Bitte "
#~ "Eingabe überprüfen!"

#~ msgid "The gui is not running. Refusing to update the graph now! Remembering this for gui start."
#~ msgstr "Die Gui läuft nicht. Verzichte auf Graphaktualisierung! Wird aber für den Gui-Start gemerkt!"
#~ msgid ""
#~ "The gui is not running. Refusing to update the graph now! Remembering "
#~ "this for gui start."
#~ msgstr ""
#~ "Die Gui läuft nicht. Verzichte auf Graphaktualisierung! Wird aber für den "
#~ "Gui-Start gemerkt!"

#~ msgid "Date region was changed."
#~ msgstr "Datumsbereich wurde geändert."
Expand All @@ -448,7 +483,9 @@ msgstr "Optimiere PDF"
#~ msgstr "Enddatum vor Startdatum ausgewählt"

#~ msgid "You selected an end date in the past. The graph will not updated."
#~ msgstr "Es wurde ein Enddatum in der Vergangenheit ausgewählt. Der Graph wird nicht aktualisiert."
#~ msgstr ""
#~ "Es wurde ein Enddatum in der Vergangenheit ausgewählt. Der Graph wird "
#~ "nicht aktualisiert."

#~ msgid "Please choose a file"
#~ msgstr "Bitte eine Datei auswählen"
Expand Down Expand Up @@ -525,14 +562,24 @@ msgstr "Optimiere PDF"
#~ msgid "Calculating md5sum of file '{}' didn't work!"
#~ msgstr "Berechnen der md5-Summe für die Datei '{}' hat nicht funktioniert!"

#~ msgid "Yeah, the amount gets a pretty format, but the system is not yet perfect. Place the cursor after the comma and then type to add numbers after the comma..."
#~ msgstr "Ja, der Betrag wird automatisch schön formatiert, aber so richtig perfekt ist die Eingabe noch nicht. Zum Eingeben von Nachkommastellen, den Cursor bitte hinter das Komma platzieren..."
#~ msgid ""
#~ "Yeah, the amount gets a pretty format, but the system is not yet perfect. "
#~ "Place the cursor after the comma and then type to add numbers after the "
#~ "comma..."
#~ msgstr ""
#~ "Ja, der Betrag wird automatisch schön formatiert, aber so richtig perfekt "
#~ "ist die Eingabe noch nicht. Zum Eingeben von Nachkommastellen, den Cursor "
#~ "bitte hinter das Komma platzieren..."

#~ msgid "To prevent recursion I won't react to this."
#~ msgstr "Um Rekursion zu verhindern, wird nicht darauf reagiert."

#~ msgid "Somehow a date was selected from an unknown calendar. This should not have happened."
#~ msgstr "Irgendwie wurde ein Datum von einem unbekannten Kalender ausgewählt. Das hätte nicht passieren sollen."
#~ msgid ""
#~ "Somehow a date was selected from an unknown calendar. This should not "
#~ "have happened."
#~ msgstr ""
#~ "Irgendwie wurde ein Datum von einem unbekannten Kalender ausgewählt. Das "
#~ "hätte nicht passieren sollen."

#~ msgid "Date range"
#~ msgstr "Datumsbereich"
Expand Down Expand Up @@ -625,13 +672,16 @@ msgstr "Optimiere PDF"
#~ msgstr "untätig"

#~ msgid "Request to stop logging on device {} - will terminate soon..."
#~ msgstr "Anfrage, die Datenaufzeichnung auf Gerät {} zu beenden - werde bald anhalten..."
#~ msgstr ""
#~ "Anfrage, die Datenaufzeichnung auf Gerät {} zu beenden - werde bald "
#~ "anhalten..."

#~ msgid "Shutting down logging thread of device {}"
#~ msgstr "Fahre Datenaufzeichnungs-Thread auf Gerät {} herunter"

#~ msgid "logging thread for device {} was shut down properly."
#~ msgstr "Datenaufzeichnungsthread für Gerät {} wurde ordentlich heruntergefahren."
#~ msgstr ""
#~ "Datenaufzeichnungsthread für Gerät {} wurde ordentlich heruntergefahren."

#~ msgid "Starting data logging on device {}"
#~ msgstr "Beginne Datenaufzeichnung auf Gerät {}"
Expand Down Expand Up @@ -679,19 +729,25 @@ msgstr "Optimiere PDF"
#~ msgstr "gpio-dbus läuft nicht"

#~ msgid "trying to start gpio-dbus via systemd's dbus interface..."
#~ msgstr "versuche, gpio-dbus über das DBus Interface von systemd zu starten..."
#~ msgstr ""
#~ "versuche, gpio-dbus über das DBus Interface von systemd zu starten..."

#~ msgid "instructed systemd via dbus to start gpio-dbus."
#~ msgstr "systemd wurde über dbus angewiesen, gpio-dbus zu starten."

#~ msgid "gpio-dbus was successfully started via systemd's dbus interface."
#~ msgstr "gpio-dbus erfolgreich über das DBus-Interface von systemd gestartet."
#~ msgstr ""
#~ "gpio-dbus erfolgreich über das DBus-Interface von systemd gestartet."

#~ msgid "gpio-dbus startup took too long via systemd, didn't work."
#~ msgstr "gpio-dbus über systemd zu starten, hat zu lange gedauert, nicht funktioniert."
#~ msgstr ""
#~ "gpio-dbus über systemd zu starten, hat zu lange gedauert, nicht "
#~ "funktioniert."

#~ msgid "starting gpio-dbus via systemd's dbus interface didn't work."
#~ msgstr "gpio-dbus über das DBus Interface von systemd zu starten, hat nicht funktioniert."
#~ msgstr ""
#~ "gpio-dbus über das DBus Interface von systemd zu starten, hat nicht "
#~ "funktioniert."

#~ msgid "starting gpio-dbus via 'at now'..."
#~ msgstr "starte gpio-dbus über 'at now'..."
Expand All @@ -700,7 +756,9 @@ msgstr "Optimiere PDF"
#~ msgstr "gpio-dbus erfolgreich über 'at now' gestartet."

#~ msgid "gpio-dbus startup took too long via 'at now', didn't work."
#~ msgstr "gpio-dbus über 'at now' zu starten, hat zu lange gedauert, nicht funktioniert."
#~ msgstr ""
#~ "gpio-dbus über 'at now' zu starten, hat zu lange gedauert, nicht "
#~ "funktioniert."

#~ msgid "no DEVNAME environment variable given. Nothing more to do."
#~ msgstr "keine DEVNAME Umgebungsvariable. Nichts mehr zu tun."
Expand All @@ -709,7 +767,8 @@ msgstr "Optimiere PDF"
#~ msgstr "DEVNAME Umgebungsvariable: {}"

#~ msgid "DEVNAME environment variable '{}' is a non-existant file. Aborting."
#~ msgstr "DEVNAME Umgebungsvariable '{}' ist keine existierende Datei. Abbruch."
#~ msgstr ""
#~ "DEVNAME Umgebungsvariable '{}' ist keine existierende Datei. Abbruch."

#, fuzzy
#~ msgid "getting monitored_devices..."
Expand Down
16 changes: 16 additions & 0 deletions m4/tuca.m4.in
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ define(<~TUCA_SHA256SUM~>,<~@sha256sum_bin@~>)dnl
define(<~TUCA_PINENTRY_GTK_2~>,<~@pinentry_gtk_2_bin@~>)dnl
define(<~TUCA_GPG2K_PARSER~>,<~@bindir@/parse-gpg2-k~>)
define(<~TUCA_GPG_AGENT~>,<~@gpg_agent_bin@~>)
define(<~TUCA_GPG_CONNECT_AGENT~>,<~@gpg_connect_agent_bin@~>)
dnl metadata from ./configure
define(<~TUCA_PACKAGE_NAME~>,<~@PACKAGE_NAME@~>)dnl
dnl paths from ./configure
Expand Down Expand Up @@ -234,3 +235,18 @@ define(<~TUCA_CMD~>,<~dnl
TUCA_INIT();dnl
<~$1~>dnl
~>)dnl
dnl
dnl TUCA_GPG_INIT()
dnl - make sure gpg is usable by initialising some things
dnl
define(<~TUCA_GPG_INIT~>,<~dnl
if ! TUCA_GPG_AGENT();then dnl check if agent is not running
TUCA_PROGRESSBAR(dnl
TUCA_PROGRESSBAR_TEXT(TUCA_TRANSLATE(Initialising gnupg...));dnl show text
TUCA_GPG2() --list-public-keys;dnl make sure a ~/.gnupg directory exists
TUCA_GPG_CONNECT_AGENT() /bye;dnl start the gpg-agent
TUCA_GPG_AGENT() --pinentry-program="TUCA_PINENTRY_GTK_2()" dnl tell gpg-agent to use pinentry-gtk-2
pulse,dnl let the progressbar only pulse
);dnl
fi<~~>dnl
~>)dnl
Loading

0 comments on commit ea0a93f

Please sign in to comment.