simplify sbean

This commit is contained in:
2023-10-17 13:41:33 +03:00
parent 74a35674e1
commit 6eec25d376

View File

@@ -3,24 +3,23 @@ _help() {
echo " echo "
sbean: Spilling the beans, a keepassxc cli wrapper sbean: Spilling the beans, a keepassxc cli wrapper
commands: syntax:
- apt install keepassxc: [db-file] [key-file] [command] [[entry-name]] [[options]]
install
- create database
[db-file] [key-file] create
- list entries
[db-file] [key-file] ls
- add new entry, password through stdin, or interactive
[db-file] [key-file] add [entry-name] --user user-name
- get user name
[db-file] [key-file] get-user [entry-name]
- get password
[db-file] [key-file] get-password [entry-name]
- open database using cli
[db-file] [key-file] open
- open database using keepassxc:
[db-file] [key-file] openx
Commands:
install apt install keepassxc
create database create
ls list entries
add [entry-name] add new entry, password asked interactively, or use stdin
options:
--user optional user-name
--file use a file as password (may be binary)
get-user [entry-name] get user name
get-password [entry-name] get password
options:
--decode use if --file was used to add
open open database using cli
openx open database using keepassxc
" "
exit exit
} }
@@ -56,7 +55,11 @@ _ls() {
_add() { _add() {
if [[ -z "$ENTRY" ]]; then _error "entry required"; fi if [[ -z "$ENTRY" ]]; then _error "entry required"; fi
if [[ -e "$ENTRY_FILE" ]]; then
cat "$ENTRY_FILE" | base64 -w 0 | keepassxc-cli add -k "$DBKEY" --no-password "$DBPATH" -p -u "$ENTRY_USER" "$ENTRY"
else
keepassxc-cli add -k "$DBKEY" --no-password "$DBPATH" -p -u "$ENTRY_USER" "$ENTRY" keepassxc-cli add -k "$DBKEY" --no-password "$DBPATH" -p -u "$ENTRY_USER" "$ENTRY"
fi
} }
_get_user() { _get_user() {
@@ -66,7 +69,11 @@ _get_user() {
_get_pass() { _get_pass() {
if [[ -z "$ENTRY" ]]; then _error "entry required"; fi if [[ -z "$ENTRY" ]]; then _error "entry required"; fi
if [[ -z "$ENTRY_DECODE" ]]; then
keepassxc-cli show -k "$DBKEY" --no-password -a password "$DBPATH" "$ENTRY" keepassxc-cli show -k "$DBKEY" --no-password -a password "$DBPATH" "$ENTRY"
else
keepassxc-cli show -k "$DBKEY" --no-password -a password "$DBPATH" "$ENTRY" | base64 -d
fi
} }
_open() { _open() {
@@ -82,6 +89,8 @@ for (( i=1; i<=$#; i++ )); do
[[ "$value" =~ -h ]] && { _help; } [[ "$value" =~ -h ]] && { _help; }
[[ "$value" =~ --help ]] && { _help; } [[ "$value" =~ --help ]] && { _help; }
[[ "$value" =~ --user ]] && { ENTRY_USER="${!j}"; } [[ "$value" =~ --user ]] && { ENTRY_USER="${!j}"; }
[[ "$value" =~ --file ]] && { ENTRY_FILE="${!j}"; }
[[ "$value" =~ --decode ]] && { ENTRY_DECODE="true"; continue; }
i=$j i=$j
continue continue
} }