}
#
+# detects buxton mode
+#
+buxmode=
+if buxtonctl -s check >/dev/null 2>&1
+then
+ buxmode=-s
+elif buxtonctl -d check >/dev/null 2>&1
+then
+ buxmode=-d
+else
+ error "unable to detect buxton mode"
+ exit
+fi
+
+#
# calls to buxton
#
buxton() {
- buxtonctl "$@"
+ buxtonctl $buxmode -- "$@"
}
buxton_is_ready() {
else
buxton_make_group "$layer" "$group" || return
fi
- [[ -z "$label" ]] || buxton_set_label "$layer" "$group" "$label"
+ if [[ -n "$label" ]] && [[ "$label" != "$(buxton_get_label "$layer" "$group")" ]]
+ then
+ buxton_set_label "$layer" "$group" "$label"
+ else
+ info "group $group in layer $layer already has label $label"
+ fi
}
buxton_ensure_ready() {
#############################################################################################
group=vconf
+context=User
# get the layer of the key
layer_of_key() {
case "$1/" in
user/*) echo -n "user";;
- memory/*) echo -n "temp";;
+ memory/*)
+ if [[ "$buxmode" = '-d' ]]
+ then
+ error "the layer temp isn't available in direct mode"
+ exit
+ fi
+ echo -n "temp"
+ ;;
*) echo -n "base";;
esac
}
fi
}
+# calls getopt with negative numbers protection
+mygetopt() {
+ local name="$exe $1" long="$2" short="$3" x=
+ shift 3
+ eval set -- $(
+ for x; do
+ echo -n "'$x'" |
+ sed "s:\(.\)'\(.\):\\1\\\\'\\2:g ; s/^'\(-[0-9.]*\)'\$/'protect-sign:\1'/ ; s/^.*/& /"
+ done
+ )
+ getopt -n "$name" -l "$long" -o "$short" -- "$@" |
+ sed "s/'protect-sign:/'/g"
+}
+
#
# ensure existing the group for vconf
#
-buxton_ensure_group "base" "$group" || exit
+buxton_ensure_group "base" "$group" "$context" || exit
# set the value
doset() {
local typ= name= layer= value= smack= force=false instal=false
# scan arguments
- eval set -- $(getopt -n "$exe set" -l force,install,type:,smack:,group:,user: -o fit:s:g:u: -- "$@")
+ eval set -- $(mygetopt set force,install,type:,smack:,group:,user: fit:s:g:u: "$@")
while :
do
case "$1" in
shift
;;
-u|-g|--user|--group)
- warning "option $1 $2 ignored!"
+ info "option $1 $2 ignored!"
shift 2
;;
--)
then
if expr "$name" : memory/ >/dev/null
then
- setkey "$typ" "memory_init/$name" "$value" "$smack"
+ setkey "$typ" "memory_init/$name" "$value" "$smack" || exit
+ [[ "$buxmode" = -d ]] && exit
else
warning only keys beginning with memory/ are allowing option -i
fi
local name= layer= rec=false val=
# scan arguments
- eval set -- $(getopt -n "$exe get" -l recursive -o r -- "$@")
+ eval set -- $(mygetopt get recursive r "$@")
if [[ "$1" = "-r" || "$1" = "--recursive" ]]
then
rec=true