commit 50d7d9a8214dd4e1d268800d48aa8364a831b95e
parent 1ccd7a9ee944f09a3633c6bdbf5417fc6d07dd71
Author: Wim Dupont <wim@wimdupont.com>
Date: Sat, 30 Jul 2022 20:22:55 +0200
ignore case in dmenu scripts and updated encr
Diffstat:
6 files changed, 37 insertions(+), 12 deletions(-)
diff --git a/README.adoc b/README.adoc
@@ -20,7 +20,8 @@ Decrypts a GPG encrypted TAR file.
== ./bin/encr
-Archives a given file or directory as a TAR file and encrypts it with GPG using symmetric encryption.
+Archives a given file or directory as a TAR file and encrypts it with GPG using symmetric or asymmetric encryption. By default it uses symmetric encryption and looks for encrypted
+file "~/sym-pwd.gpg" to use its content as password.
== ./bin/mpvd
diff --git a/bin/encr b/bin/encr
@@ -1,5 +1,20 @@
#!/bin/bash
+#Encrypted file with default symmetric password
+sym_pwd=$HOME/.sym-pwd.gpg
+
+disable_default_pwd=0
+asymmetric=0
+
+while getopts "da" arg; do
+ case $arg in
+ d) disable_default_pwd=1;;
+ a) asymmetric=1;;
+ esac
+done
+
+shift $((OPTIND-1))
+
file=$1
#Removes last occurence of "/", gets added when using tab autocomplete
@@ -9,7 +24,16 @@ fi
tar -cf "$file".tar "$file"
-gpg -c --no-symkey-cache --cipher-algo AES256 "$file".tar
-
-rm -v "$file".tar
+#Ensures deletion of unencrypted tar file on exit
+trap 'rm -v "$file".tar' EXIT
+if [ $asymmetric -eq 0 ]; then
+ if [ $disable_default_pwd -eq 0 ] && [ -f "$sym_pwd" ]; then
+ pwd=$(gpg --decrypt "${sym_pwd}" 2>/dev/null)
+ gpg --passphrase "${pwd}" --batch --yes -c --no-symkey-cache --cipher-algo AES256 "$file".tar
+ else
+ gpg -c --no-symkey-cache --cipher-algo AES256 "$file".tar
+ fi
+else
+ gpg -e "$file".tar
+fi
diff --git a/bin/mpvd b/bin/mpvd
@@ -21,11 +21,11 @@ done
songdirs=( "${songdirs[@]#"$prefix"/}" )
songdirs=( "${songdirs[@]%/}" )
-songdir=$(printf '%s\n' "${songdirs[@]}" | "$dmenu" -fn "$font" -l "$lines" "$@")
+songdir=$(printf '%s\n' "${songdirs[@]}" | "$dmenu" -fn "$font" -i -l "$lines" "$@")
[[ -n $songdir ]] || exit
-playsongdir=$(printf "no\nyes" | "$dmenu" -fn "$font" "$@" -p "Play full directory?")
+playsongdir=$(printf "no\nyes" | "$dmenu" -fn "$font" -i "$@" -p "Play full directory?")
[[ -n $playsongdir ]] || exit
@@ -34,10 +34,10 @@ if [[ "$playsongdir" == no ]]; then
songdirs=( "$prefix"/**/*)
songdirs=( "${songdirs[@]#"$prefix"/}" )
songdirs=( "${songdirs[@]%}" )
- songdir=$(printf '%s\n' "${songdirs[@]}" | "$dmenu" -fn "$font" -l "$lines" "$@")
+ songdir=$(printf '%s\n' "${songdirs[@]}" | "$dmenu" -fn "$font" -i -l "$lines" "$@")
[[ -n $songdir ]] || exit
else
- random=$(printf "no\nyes" | "$dmenu" -fn "$font" "$@" -p "Shuffle?")
+ random=$(printf "no\nyes" | "$dmenu" -fn "$font" -i "$@" -p "Shuffle?")
[[ -n $random ]] || exit
diff --git a/bin/otp b/bin/otp
@@ -26,7 +26,7 @@ password_files=( "$prefix"/otp/**/*.gpg )
password_files=( "${password_files[@]#"$prefix"/}" )
password_files=( "${password_files[@]%.gpg}" )
-password=$(printf '%s\n' "${password_files[@]}" | "$dmenu" -fn "$font" "$@")
+password=$(printf '%s\n' "${password_files[@]}" | "$dmenu" -fn "$font" -i "$@")
[[ -n $password ]] || exit
diff --git a/bin/pwu b/bin/pwu
@@ -26,7 +26,7 @@ password_files=( "$prefix"/**/*.gpg )
password_files=( "${password_files[@]#"$prefix"/}" )
password_files=( "${password_files[@]%.gpg}" )
-password=$(printf '%s\n' "${password_files[@]}" | "$dmenu" -fn "$font" "$@")
+password=$(printf '%s\n' "${password_files[@]}" | "$dmenu" -fn "$font" -i "$@")
[[ -n $password ]] || exit
@@ -44,7 +44,7 @@ if [[ $typeit -eq 0 ]]; then
pass -c "$password" 2>/dev/null
url=$(echo "$selection" | sed -n 3p)
if [[ "$url" ]]; then
- openUrl=$(printf "yes\nno" | "$dmenu" -fn "$font" "$@" -p "Open $url in browser?")
+ openUrl=$(printf "yes\nno" | "$dmenu" -fn "$font" -i "$@" -p "Open $url in browser?")
if [[ "$openUrl" == yes ]]; then
xdg-open "$url" & disown
fi
diff --git a/bin/radio b/bin/radio
@@ -11,7 +11,7 @@ file=~/Desktop/radiostations
readarray -t stations < "$file"
-stationName=$(printf '%s\n' "${stations[@]}" | cut -f1 -d ';' | "$dmenu" -fn "$font" -l "$lines" "$@")
+stationName=$(printf '%s\n' "${stations[@]}" | cut -f1 -d ';' | "$dmenu" -fn "$font" -i -l "$lines" "$@")
for i in "${stations[@]}"