update rbw scripts
This commit is contained in:
parent
10f93e7cdd
commit
8755313f5b
2 changed files with 67 additions and 12 deletions
|
@ -1,7 +1,55 @@
|
|||
#!/usr/bin/env bash
|
||||
# Use fuzzel to find a password from password-store and copy it to clipboard.
|
||||
# inpired by: https://gist.github.com/igemnace/2b8609d280752e8a1b173204c14f6892
|
||||
#!/bin/bash
|
||||
|
||||
pass_name=$(rbw list | choose)
|
||||
# Funktion zur Auswahl mit fuzzel oder choose
|
||||
select_item() {
|
||||
local prompt="$1"
|
||||
local input="$2"
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo "$input" | choose -p "$prompt"
|
||||
else
|
||||
echo "$input" | fuzzel -d -p "$prompt"
|
||||
fi
|
||||
}
|
||||
|
||||
[[ $pass_name != "" ]] && rbw get "$pass_name" --clipboard
|
||||
# Funktion zum Bereinigen des ausgewählten Textes
|
||||
clean_text() {
|
||||
local text="$1"
|
||||
if [[ "$text" == *": "* ]]; then
|
||||
echo "$text" | sed 's/^[^:]*: //'
|
||||
else
|
||||
echo "$text"
|
||||
fi
|
||||
}
|
||||
|
||||
# Funktion zum Kopieren in die Zwischenablage
|
||||
copy_to_clipboard() {
|
||||
local text="$1"
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo -n "$text" | pbcopy
|
||||
else
|
||||
echo -n "$text" | wl-copy
|
||||
fi
|
||||
}
|
||||
|
||||
# Wähle einen Eintrag aus der Liste
|
||||
pass_name=$(select_item "Wähle einen Eintrag:" "$(rbw list)")
|
||||
|
||||
# Wenn ein Eintrag ausgewählt wurde
|
||||
if [[ $pass_name != "" ]]; then
|
||||
# Hole alle Details des Eintrags
|
||||
details=$(rbw get "$pass_name" --full)
|
||||
|
||||
# Zeige Details an und lasse den Benutzer eine Zeile auswählen
|
||||
selected_detail=$(select_item "Details für $pass_name:" "$details")
|
||||
|
||||
# Wenn eine Zeile ausgewählt wurde
|
||||
if [[ $selected_detail != "" ]]; then
|
||||
# Bereinige den ausgewählten Text
|
||||
cleaned_text=$(clean_text "$selected_detail")
|
||||
|
||||
# Kopiere den bereinigten Text in die Zwischenablage
|
||||
copy_to_clipboard "$cleaned_text"
|
||||
|
||||
echo "Bereinigter Text wurde in die Zwischenablage kopiert."
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -1,15 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Funktion zur Auswahl mit fuzzel oder choose
|
||||
select_item() {
|
||||
local prompt="$1"
|
||||
local input="$2"
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo "$input" | choose -p "$prompt"
|
||||
else
|
||||
echo "$input" | fuzzel -d -p "$prompt"
|
||||
fi
|
||||
}
|
||||
|
||||
# Funktion zum Bereinigen des ausgewählten Textes
|
||||
clean_text() {
|
||||
local text="$1"
|
||||
|
||||
# Prüfe, ob der Text einen Doppelpunkt gefolgt von einem Leerzeichen enthält
|
||||
if [[ "$text" == *": "* ]]; then
|
||||
# Entferne alles bis zum ersten Doppelpunkt und das folgende Leerzeichen
|
||||
echo "$text" | sed 's/^[^:]*: //'
|
||||
else
|
||||
# Wenn kein Doppelpunkt mit folgendem Leerzeichen gefunden wird, gib den Text unverändert zurück
|
||||
echo "$text"
|
||||
fi
|
||||
}
|
||||
|
@ -25,15 +32,15 @@ copy_to_clipboard() {
|
|||
}
|
||||
|
||||
# Wähle einen Eintrag aus der Liste
|
||||
pass_name=$(rbw list | fuzzel -d)
|
||||
pass_name=$(select_item "Wähle einen Eintrag:" "$(rbw list)")
|
||||
|
||||
# Wenn ein Eintrag ausgewählt wurde
|
||||
if [[ $pass_name != "" ]]; then
|
||||
# Hole alle Details des Eintrags
|
||||
details=$(rbw get "$pass_name" --full)
|
||||
|
||||
# Zeige Details in einem neuen Fuzzel-Fenster an und lasse den Benutzer eine Zeile auswählen
|
||||
selected_detail=$(echo "$details" | fuzzel --dmenu --prompt="Details für $pass_name: ")
|
||||
# Zeige Details an und lasse den Benutzer eine Zeile auswählen
|
||||
selected_detail=$(select_item "Details für $pass_name:" "$details")
|
||||
|
||||
# Wenn eine Zeile ausgewählt wurde
|
||||
if [[ $selected_detail != "" ]]; then
|
||||
|
|
Loading…
Reference in a new issue