#!/bin/sh
#
# common-all - Common functions for all of kboot's scripts, including the shell
#
# Written 2005 by Werner Almesberger
#

###############################################################################
#
# Indirect access to variables and simple arrays (also compatible with regular
# Bourne shell)
#

#
# __var_get name -> stdout
#

__var_get()
{
    eval echo '"$'$1'"'
}


#
# __var_set name value
#

__var_set()
{
    eval $1='"'"$2"'"'
}

#
# __var_set_key prefix key value
#

__var_set_key()
{
    local key

    key="`echo "$2" | md5sum`"
    __var_set ${1}_${key%% *} "$3"
}


#
# __var_get_key prefix key
#

__var_get_key()
{
    local key value

    key="`echo "$2" | md5sum`"
    value="`__var_get ${1}_${key%% *}`"
    [ ! -z "$value" ] && echo "$value"
}


#
# __var_del_key prefix key
#

__var_del_key()
{
    local key

    key="`echo "$2" | md5sum`"
    eval unset ${1}_${key%% *}
}
