diff --git a/bin/credentials.sh b/bin/credentials.sh
index cfaf1bf..6e4f8d1 100644
--- a/bin/credentials.sh
+++ b/bin/credentials.sh
@@ -10,7 +10,8 @@
# Dedication along with this software. If not, see
# .
-usage() {
+usage()
+{
cat - <<. >&2
Usage:
${0##*/} [-2pu] service
@@ -18,66 +19,68 @@ Usage:
exit 1
}
-clip() { xclip -q -r -l 1 -sel clip 2>/dev/null; }
-
-get_user() {
- echo user
- sekrit get services/"$1"/user | clip
+err()
+{
+ printf "%s: %s\n" "${0##*/}" "$*" >&2
+ exit 1
}
-get_pass() {
- echo pass
- sekrit get services/"$1"/pass | clip
+clip()
+{
+ xclip -q -r -l 1 -sel clip 2>/dev/null
}
-get_2fa() {
- echo 2fa
+get_user()
+{
+ printf user
+ sekrit get "services/$1/user" | clip && printf "\n"
+}
+
+get_pass()
+{
+ printf pass
+ sekrit get "services/$1/pass" | clip && printf "\n"
+}
+
+get_2fa()
+{
+ printf 2fa
otpcli_opts=
case $1 in
isnic) otpcli_opts="-H sha512 -d 8"
;;
esac
- sekrit get services/"$1"/2fa | otpcli $otpcli_opts | clip
+ sekrit get "services/$1/2fa" | otpcli $otpcli_opts | clip && printf "\n"
}
-get_from_flags() {
- user=$1
- pass=$2
- sfa=$3
- s=$4
+get_from_flags()
+{
+ service=$1
+ user=$2
+ pass=$3
+ sfa=$4
- if [ $user = yes ] && ! sekrit has services/"$s"/user; then
- printf "%s: service \"%s\" has no user.\n" \
- "${0##*/}" "$s" >&2
- exit 1
- fi
- if [ $pass = yes ] && ! sekrit has services/"$s"/pass; then
- printf "%s: service \"%s\" has no pass.\n" \
- "${0##*/}" "$s" >&2
- exit 1
- fi
- if [ $sfa = yes ] && ! sekrit has services/"$s"/2fa; then
- printf "%s: service \"%s\" has no 2fa.\n" \
- "${0##*/}" "$s" >&2
- exit 1
- fi
+ [ $user = yes ] && sekrit has services/"$service"/user ||
+ err "Service \"$service\" has no user."
+ [ $pass = yes ] && sekrit has services/"$service"/pass ||
+ err "Service \"$service\" has no pass."
+ [ $sfa = yes ] && sekrit has services/"$service"/2fa ||
+ err "Service \"$service\" has no 2fa."
- [ $user = yes ] && get_user "$s"
- [ $pass = yes ] && get_pass "$s"
- [ $sfa = yes ] && get_2fa "$s"
+ [ $user = yes ] && get_user "$service"
+ [ $pass = yes ] && get_pass "$service"
+ [ $sfa = yes ] && get_2fa "$service"
}
-get_all() {
- s=$1
- if ! sekrit has services/"$s"/pass; then
- printf "%s: Unknown service \"%s\".\n" \
- "${0##*/}" "$s" >&2
- exit 1
- fi
+get_all()
+{
+ service=$1
+ sekrit has "services/$service/pass" ||
+ err "Unknown service \"$service\"."
- sekrit has services/"$s"/user && get_user "$s"
- get_pass "$s"
- sekrit has services/"$s"/2fa && get_2fa "$s"
+ sekrit has "services/$service/user" && get_user "$service"
+ get_pass "$service"
+ sekrit has "services/$service/2fa" && get_2fa "$service"
}
sfa=no
@@ -97,13 +100,11 @@ while getopts 2pu flag; do
done
shift $(($OPTIND - 1))
-if [ $# -ne 1 ] || [ -z "$1" ]; then
- usage
-fi
+[ $# -eq 1 ] && [ -n "$1" ] || usage
service=$1
if [ $sfa = yes ] || [ $pass = yes ] || [ $user = yes ]; then
- get_from_flags $user $pass $sfa "$service"
+ get_from_flags "$service" $user $pass $sfa
else
get_all "$service"
fi
diff --git a/bin/sekrit.sh b/bin/sekrit.sh
index b18d0bd..9a2f192 100644
--- a/bin/sekrit.sh
+++ b/bin/sekrit.sh
@@ -68,7 +68,7 @@ sekrit_add()
[ -f "$f" ] && err "Key \"$key\" already exists."
- if [ $# -ne 0 ]; then
+ if [ $# -gt 0 ]; then
printf "%s\n" "$*"
else
cat -
diff --git a/bin/xsekrit.sh b/bin/xsekrit.sh
index 218be2e..9d4e140 100644
--- a/bin/xsekrit.sh
+++ b/bin/xsekrit.sh
@@ -10,8 +10,6 @@
# Dedication along with this software. If not, see
# .
-clip() { xclip -q -l 1 -sel clip 2>/dev/null; }
-
if [ $# -ne 1 ] || [ -z "$1" ]; then
printf "Usage: %s key\n" "${0##*/}" >&2
exit 1
@@ -20,4 +18,4 @@ if ! sekrit has "$1"; then
printf "%s: Unknown key \"%s\".\n" "${0##*/}" "$1" >&2
exit 1
fi
-sekrit get "$1" | clip
+sekrit get "$1" | xclip -q -r -l 1 -sel clip 2>/dev/null