aboutsummaryrefslogtreecommitdiffhomepage
path: root/X11/rofi/pass.replace
diff options
context:
space:
mode:
Diffstat (limited to 'X11/rofi/pass.replace')
-rwxr-xr-xX11/rofi/pass.replace43
1 files changed, 43 insertions, 0 deletions
diff --git a/X11/rofi/pass.replace b/X11/rofi/pass.replace
new file mode 100755
index 0000000..fa3d442
--- /dev/null
+++ b/X11/rofi/pass.replace
@@ -0,0 +1,43 @@
1#! /bin/bash
2
3ENTRIES="$(find ~/.password-store -name '*gpg' -printf %P\\n | sed 's/.gpg$//')"
4GENERATION_HINT="Generate with default config"
5
6# Generate a new password if ROFI_DATA is given by last execution
7if [ -n "${ROFI_DATA}" ]; then
8 PASSWORD="${ROFI_DATA}"
9 export ROFI_DATA=
10
11 # If custom arguments for password generation is given
12 # Set environment variable
13 if [ ${ROFI_RETV} -eq 2 ]; then
14 extra_arguments="${1}"
15 fi
16
17 # Generate password in a new process
18 # And Use current script to copy the values info X11 selections
19 coproc (
20 pass generate -i ${PASSWORD} ${extra_arguments}
21 $(dirname $0)/pass.get ${PASSWORD}
22 )
23
24 exit 0
25fi
26
27# Give rofi available passwords and exit
28if [ $# -eq 0 ]; then
29 # Specify rofi prompt as 'Replace'
30 echo -e "\0prompt\x1fReplace"
31
32 echo "$ENTRIES"
33 exit 0
34fi
35
36# If password doesn't exist, just quit
37<<<"$ENTRIES" grep -q $1 || exit 0
38
39# Show message for password options
40echo -e "\0prompt\x1f$1"
41echo -e "\0message\x1f\"NUMBER\" for length, \"-n\" to exclude spcecial chars"
42echo -e "\0data\x1f$1"
43echo ${GENERATION_HINT}