## Maybe turn on debugging.
case "${KEYS_DEBUG+t}" in t) set -x ;; esac
+## Fake up caller credentials if not called via userv.
+case "${USERV_USER+t}" in
+ t) ;;
+ *) USERV_USER=${LOGNAME-${USER-$(id -un)}} USERV_UID=$(id -u) ;;
+esac
+case "${USERV_GROUP+t}" in
+ t) ;;
+ *) USERV_GROUP=$(id -Gn) USERV_GID=$(id -gn) ;;
+esac
+
###--------------------------------------------------------------------------
### Cleanup handling.
}
read_profile () {
- profile=$1
+ owner=$1 profile=$2
## Read property settings from a profile. The PROFILE name has the form
- ## [USER:]LABEL. Properties are set using `setprops' with prefix `kprop_'.
+ ## [USER:]LABEL; USER defaults to OWNER. Properties are set using
+ ## `setprops' with prefix `kprop_'.
reqtmp
case "$profile" in
label=${profile#:} uservp=nil
;;
*)
- user=$USERV_USER label=$profile uservp=t
+ user=$kowner label=$profile uservp=t
;;
*:*)
user=${profile%%:*} label=${profile#*:} uservp=t
parse_keylabel "$key"
if [ ! -d $kdir ]; then echo >&2 "$quis: unknown key \`$key'"; exit 1; fi
readmeta $kdir
- read_profile "$profile"
+ read_profile $kowner "$profile"
## Check whether we're allowed to do this thing. This is annoyingly
## fiddly.