openwrt /lib/function.sh

/lib/function.sh

#!/bin/sh
# Copyright (C) 2006-2014 OpenWrt.org
# Copyright (C) 2006 Fokus Fraunhofer 
# Copyright (C) 2010 Vertical Communications


debug () {
    ${DEBUG:-:} "$@"
}

# newline
N="
"

_C=0
NO_EXPORT=1
LOAD_STATE=1
LIST_SEP=" "

append() {
    local var="$1"
    local value="$2"
    local sep="${3:- }"

    eval "export ${NO_EXPORT:+-n} -- \"$var=\${$var:+\${$var}\${value:+\$sep}}\$value\""
}

list_contains() {
    local var="$1"
    local str="$2"
    local val

    eval "val=\" \${$var} \""
    [ "${val%% $str *}" != "$val" ]
}

config_load() {
    [ -n "$IPKG_INSTROOT" ] && return 0
    uci_load "$@"
}

reset_cb() {
    config_cb() { return 0; }
    option_cb() { return 0; }
    list_cb() { return 0; }
}
reset_cb

package() {
    return 0
}

config () {
    local cfgtype="$1"
    local name="$2"

    export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=$(($CONFIG_NUM_SECTIONS + 1))
    name="${name:-cfg$CONFIG_NUM_SECTIONS}"
    append CONFIG_SECTIONS "$name"
    [ -n "$NO_CALLBACK" ] || config_cb "$cfgtype" "$name"
    export ${NO_EXPORT:+-n} CONFIG_SECTION="$name"
    export ${NO_EXPORT:+-n} "CONFIG_${CONFIG_SECTION}_TYPE=$cfgtype"
}

option () {
    local varname="$1"; shift
    local value="$*"

    export ${NO_EXPORT:+-n} "CONFIG_${CONFIG_SECTION}_${varname}=$value"
    [ -n "$NO_CALLBACK" ] || option_cb "$varname" "$*"
}

list() {
    local varname="$1"; shift
    local value="$*"
    local len

    config_get len "$CONFIG_SECTION" "${varname}_LENGTH" 0
    [ $len = 0 ] && append CONFIG_LIST_STATE "${CONFIG_SECTION}_${varname}"
    len=$(($len + 1))
    config_set "$CONFIG_SECTION" "${varname}_ITEM$len" "$value"
    config_set "$CONFIG_SECTION" "${varname}_LENGTH" "$len"
    append "CONFIG_${CONFIG_SECTION}_${varname}" "$value" "$LIST_SEP"
    list_cb "$varname" "$*"
}

config_unset() {
    config_set "$1" "$2" ""
}

# config_get  

该脚本包含了常用的config, config_get等函数,
对Openwrt系统进行配置需要经常用到。

你可能感兴趣的:(openwrt,Linux,openwrt)