From a365ea2efb669ca6d5b33c413b58dc4233226f8d Mon Sep 17 00:00:00 2001 From: zawz Date: Thu, 12 Nov 2020 00:52:55 +0100 Subject: [PATCH] zpass: new operation: add --- zpass/src/help.sh | 1 + zpass/src/main.sh | 1 + zpass/src/operation.sh | 17 +++++++++++++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/zpass/src/help.sh b/zpass/src/help.sh index 8a1db0e..152c4ac 100644 --- a/zpass/src/help.sh +++ b/zpass/src/help.sh @@ -16,6 +16,7 @@ usage() get Get values of targets copy Copy the target value to clipboard. Shortcut 'x' set Set the value of target + add Prompt for input value on paths new Generate a random password at target rm Delete targets mv Move targets diff --git a/zpass/src/main.sh b/zpass/src/main.sh index 6a52736..2319a90 100644 --- a/zpass/src/main.sh +++ b/zpass/src/main.sh @@ -22,6 +22,7 @@ case $arg in c|create) create ;; t|tree) _tree "$@" ;; s|set) _set "$@" ;; + a|add) add "$@" ;; n|new) new "$@" ;; g|get) get "$@" ;; x|copy) copy "$1" ;; diff --git a/zpass/src/operation.sh b/zpass/src/operation.sh index 02ed0d8..1cd8568 100644 --- a/zpass/src/operation.sh +++ b/zpass/src/operation.sh @@ -21,6 +21,7 @@ _tree() # $@ = paths get() { + [ $# -lt 1 ] && return 1 __NOPACK=y archive_exec sh -c ' for N do @@ -42,11 +43,12 @@ copy() # $@ = path new() { + [ $# -lt 1 ] && return 1 archive_exec sh -c " for N do - mkdir -p \"\$(dirname \"\$N\")\" || exit $? - { tr -cd 'a-zA-Z0-9!-.' < /dev/urandom | head -c '$ZPASS_RAND_LEN' && echo; } > \"\$N\" || exit \$? + mkdir -p \"\$(dirname \"\$N\")\" || exit \$? + { tr -cd 'a-zA-Z0-9!-.' < /dev/urandom | head -c $ZPASS_RAND_LEN && echo; } > \"\$N\" || exit \$? done " sh "$@" } @@ -59,3 +61,14 @@ _set() shift 1 archive_exec sh -c "mkdir -p '$(dirname "$ref")' && printf '%s\n' '$*' > '$ref'" } + +add() +{ + [ $# -lt 1 ] && return 1 + archive_exec true # prompt for the key + for N + do + val=$(prompt_password "New value for $N") || return $? + _set "$N" "$val" || return $? + done +}