zpass: new operation: add
This commit is contained in:
parent
98ce7db405
commit
a365ea2efb
3 changed files with 17 additions and 2 deletions
|
|
@ -16,6 +16,7 @@ usage()
|
||||||
get <path...> Get values of targets
|
get <path...> Get values of targets
|
||||||
copy <path> Copy the target value to clipboard. Shortcut 'x'
|
copy <path> Copy the target value to clipboard. Shortcut 'x'
|
||||||
set <path> <value> Set the value of target
|
set <path> <value> Set the value of target
|
||||||
|
add <path...> Prompt for input value on paths
|
||||||
new <path...> Generate a random password at target
|
new <path...> Generate a random password at target
|
||||||
rm <path...> Delete targets
|
rm <path...> Delete targets
|
||||||
mv <path...> Move targets
|
mv <path...> Move targets
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ case $arg in
|
||||||
c|create) create ;;
|
c|create) create ;;
|
||||||
t|tree) _tree "$@" ;;
|
t|tree) _tree "$@" ;;
|
||||||
s|set) _set "$@" ;;
|
s|set) _set "$@" ;;
|
||||||
|
a|add) add "$@" ;;
|
||||||
n|new) new "$@" ;;
|
n|new) new "$@" ;;
|
||||||
g|get) get "$@" ;;
|
g|get) get "$@" ;;
|
||||||
x|copy) copy "$1" ;;
|
x|copy) copy "$1" ;;
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ _tree()
|
||||||
# $@ = paths
|
# $@ = paths
|
||||||
get()
|
get()
|
||||||
{
|
{
|
||||||
|
[ $# -lt 1 ] && return 1
|
||||||
__NOPACK=y archive_exec sh -c '
|
__NOPACK=y archive_exec sh -c '
|
||||||
for N
|
for N
|
||||||
do
|
do
|
||||||
|
|
@ -42,11 +43,12 @@ copy()
|
||||||
# $@ = path
|
# $@ = path
|
||||||
new()
|
new()
|
||||||
{
|
{
|
||||||
|
[ $# -lt 1 ] && return 1
|
||||||
archive_exec sh -c "
|
archive_exec sh -c "
|
||||||
for N
|
for N
|
||||||
do
|
do
|
||||||
mkdir -p \"\$(dirname \"\$N\")\" || exit $?
|
mkdir -p \"\$(dirname \"\$N\")\" || exit \$?
|
||||||
{ tr -cd 'a-zA-Z0-9!-.' < /dev/urandom | head -c '$ZPASS_RAND_LEN' && echo; } > \"\$N\" || exit \$?
|
{ tr -cd 'a-zA-Z0-9!-.' < /dev/urandom | head -c $ZPASS_RAND_LEN && echo; } > \"\$N\" || exit \$?
|
||||||
done
|
done
|
||||||
" sh "$@"
|
" sh "$@"
|
||||||
}
|
}
|
||||||
|
|
@ -59,3 +61,14 @@ _set()
|
||||||
shift 1
|
shift 1
|
||||||
archive_exec sh -c "mkdir -p '$(dirname "$ref")' && printf '%s\n' '$*' > '$ref'"
|
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
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue