Validate some kstore args

This commit is contained in:
斟酌 鵬兄 2023-10-09 02:37:42 +08:00
parent f6d744fda5
commit da241a1027

View File

@ -36,7 +36,7 @@ function kstore {
__func_head "add [key] [value|file|-] [prop, default: $_KSTORE_DEF_PROP]" __func_head "add [key] [value|file|-] [prop, default: $_KSTORE_DEF_PROP]"
__func_help "update [key] [value|file|-] [prop, default: $_KSTORE_DEF_PROP]" __func_help "update [key] [value|file|-] [prop, default: $_KSTORE_DEF_PROP]"
__func_help "get [key] [prop, default: $_KSTORE_DEF_PROP]" __func_help "get [key] [prop, default: $_KSTORE_DEF_PROP]"
__func_help "del [key]" __func_help "del [key] [prop, default: $_KSTORE_DEF_PROP]"
__func_help "list" __func_help "list"
__func_help "search [key] [prop]" __func_help "search [key] [prop]"
__func_help "secret ..." __func_help "secret ..."
@ -230,6 +230,10 @@ function kstore-secret-clear {
} }
function kstore-update { function kstore-update {
if [ -z "$1" ]; then
__func_head "[key] [value|file|-] [prop, default: $_KSTORE_DEF_PROP]"
return 1
fi
kstore-init || return 1 kstore-init || return 1
local _key _val _prop local _key _val _prop
_key=`kstore-quote "$1"` _key=`kstore-quote "$1"`
@ -241,34 +245,46 @@ function kstore-update {
} }
function kstore-add { function kstore-add {
if [ -z "$1" ]; then
__func_head "[key] [value|file|-] [prop, default: $_KSTORE_DEF_PROP]"
return 1
fi
kstore-init || return 1 kstore-init || return 1
local _key _val _prop local _key _val _prop
_key=`kstore-quote "$1"` _key=`kstore-quote "$1"`
_val=`kstore-enc "$2"` _val=`kstore-enc "$2"`
_val=`kstore-quote "$_val"` _val=`kstore-quote "$_val"`
_prop=`kstore-quote "${3:-$_KSTORE_DEF_PROP}"` _prop=`kstore-quote "${3:-$_KSTORE_DEF_PROP}"`
sqlite3 "$_AUTH_DB" \ $_SQLITE "$_AUTH_DB" \
"INSERT INTO store ( key, prop, data ) "INSERT INTO store ( key, prop, data )
VALUES( '$_key', '$_prop', '$_val' );" VALUES( '$_key', '$_prop', '$_val' );"
} }
function kstore-get { function kstore-get {
if [ -z "$1" ]; then
__func_head "[key] [prop, default: $_KSTORE_DEF_PROP]"
return 1
fi
kstore-init || return 1 kstore-init || return 1
local _key _prop _cond local _key _prop _cond
_key=`kstore-quote "$1"` _key=`kstore-quote "$1"`
_prop=`kstore-quote "${2:-$_KSTORE_DEF_PROP}"` _prop=`kstore-quote "${2:-$_KSTORE_DEF_PROP}"`
_cond="key = '$_key' AND prop = '$_prop'" _cond="key = '$_key' AND prop = '$_prop'"
sqlite3 "$_AUTH_DB" "SELECT 1111 FROM store WHERE $_cond;" | grep -q 1111 $_SQLITE "$_AUTH_DB" "SELECT 1111 FROM store WHERE $_cond;" | grep -q 1111
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
$_SQLITE -list "$_AUTH_DB" "SELECT ( data ) FROM store WHERE $_cond;" | kstore-dec $_SQLITE -list "$_AUTH_DB" "SELECT ( data ) FROM store WHERE $_cond;" | kstore-dec
else else
echo "\"$1\" not found" >&2 echo "\"$1\" not found (prop: $_prop)" >&2
return 1 return 1
fi fi
} }
function kstore-del { function kstore-del {
if [ -z "$1" ]; then
__func_head "[key] [prop, default: $_KSTORE_DEF_PROP]"
return 1
fi
kstore-init || return 1 kstore-init || return 1
local _CONFIRM _key _prop _cond local _CONFIRM _key _prop _cond
@ -276,13 +292,13 @@ function kstore-del {
_prop=`kstore-quote "${2:-$_KSTORE_DEF_PROP}"` _prop=`kstore-quote "${2:-$_KSTORE_DEF_PROP}"`
_cond="key = '$_key' AND prop = '$_prop'" _cond="key = '$_key' AND prop = '$_prop'"
sqlite3 "$_AUTH_DB" "SELECT 1111 FROM store WHERE $_cond;" | grep -q 1111 $_SQLITE "$_AUTH_DB" "SELECT 1111 FROM store WHERE $_cond;" | grep -q 1111
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
sqlite3 "$_AUTH_DB" "SELECT * FROM store WHERE $_cond;" $_SQLITE "$_AUTH_DB" "SELECT * FROM store WHERE $_cond;"
echo echo
read -p "Delete this entry (yes/no)? " _CONFIRM read -p "Delete this entry (yes/no)? " _CONFIRM
if [ "$_CONFIRM" == "yes" ]; then if [ "$_CONFIRM" == "yes" ]; then
sqlite3 "$_AUTH_DB" "DELETE FROM store WHERE $_cond;" $_SQLITE "$_AUTH_DB" "DELETE FROM store WHERE $_cond;"
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "deleted" echo "deleted"
fi fi
@ -290,7 +306,7 @@ function kstore-del {
echo "action canceled" echo "action canceled"
fi fi
else else
echo "\"$1\" not found" >&2 echo "\"$1\" not found (prop: $_prop)" >&2
fi fi
} }