Changeset 38786


Ignore:
Timestamp:
2013-11-13T11:49:25+01:00 (4 years ago)
Author:
blogic
Message:

procd: update to latest git head

this includes the first wip version of the uci validation backend

Signed-off-by: John Crispin <blogic@…>

Location:
trunk/package/system/procd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/system/procd/Makefile

    r38695 r38786  
    22 
    33PKG_NAME:=procd 
    4 PKG_VERSION:=2013-11-08 
     4PKG_VERSION:=2013-11-13 
    55 
    66PKG_RELEASE=$(PKG_SOURCE_VERSION)-1 
     
    99PKG_SOURCE_URL:=git://nbd.name/luci2/procd.git 
    1010PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) 
    11 PKG_SOURCE_VERSION:=315f04d8b823adda96041c17f6672b7790376ccb 
     11PKG_SOURCE_VERSION:=f9d31edb8938341b9217ee4c14eb58111414eb97 
    1212PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz 
    1313CMAKE_INSTALL:=1 
     
    3131 
    3232define Package/procd/install 
    33         $(INSTALL_DIR) $(1)/sbin $(1)/lib/functions $(1)/etc/init.d 
     33        $(INSTALL_DIR) $(1)/sbin $(1)/lib/functions $(1)/etc/init.d $(1)/lib 
    3434 
    35         $(CP) $(PKG_INSTALL_DIR)/usr/sbin/{procd,askfirst,udevtrigger,logread} $(1)/sbin/ 
     35        $(CP) $(PKG_INSTALL_DIR)/usr/sbin/{procd,askfirst,udevtrigger,logread,validate_data} $(1)/sbin/ 
     36        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libvalidate.so $(1)/lib/ 
    3637        $(INSTALL_BIN) ./files/reload_config $(1)/sbin/ 
    3738        $(INSTALL_BIN) ./files/log.init $(1)/etc/init.d/log 
    3839        $(INSTALL_DATA) ./files/hotplug*.json $(1)/etc/ 
    39         $(INSTALL_DATA) ./files/procd.sh $(1)/lib/functions/ 
     40        $(INSTALL_DATA) ./files/procd.sh ./files/procd-validate.sh $(1)/lib/functions/ 
    4041        ln -s /sbin/procd $(1)/sbin/init 
    4142endef 
  • trunk/package/system/procd/files/procd.sh

    r38350 r38786  
    6969_procd_close_service() { 
    7070        json_close_object 
    71         _procd_open_trigger 
    7271        service_triggers 
    73         _procd_close_trigger 
    7472        _procd_ubus_call set 
    7573} 
     
    118116} 
    119117 
     118_procd_open_validate() { 
     119        json_add_array "validate" 
     120} 
     121 
    120122_procd_set_param() { 
    121123        local type="$1"; shift 
     
    136138_procd_add_config_trigger() { 
    137139        json_add_array 
    138         _procd_add_array_data "config.change" 
     140        _procd_add_array_data "$1" 
     141        shift 
    139142 
    140143        json_add_array 
     
    159162        local name=$(basename ${script:-$initscript}) 
    160163 
    161         _procd_add_config_trigger $1 /etc/init.d/$name reload 
    162 } 
    163  
    164 _procd_add_reload_trigger() { 
    165         local script=$(readlink "$initscript") 
    166         local name=$(basename ${script:-$initscript}) 
    167  
    168         _procd_add_config_trigger $1 /etc/init.d/$name reload 
     164        _procd_open_trigger 
     165        _procd_add_config_trigger "config.change" $1 /etc/init.d/$name reload 
     166        _procd_close_trigger 
     167} 
     168 
     169_procd_add_validation() { 
     170        _procd_open_validate 
     171        $@ 
     172        _procd_close_validate 
    169173} 
    170174 
     
    192196} 
    193197 
     198_procd_close_validate() { 
     199        json_close_array 
     200} 
     201 
    194202_procd_add_instance() { 
    195203        _procd_open_instance 
     
    206214        [ -n "$instance" ] && json_add_string instance "$instance" 
    207215        _procd_ubus_call delete 
     216} 
     217 
     218uci_validate_section() 
     219{ 
     220        local error=0 
     221 
     222        [ "$4" = "" ] && return 1 
     223        [ "$3" = "" ] && { 
     224                json_add_object 
     225                json_add_string "package" "$1" 
     226                json_add_string "type" "$2" 
     227                json_add_object "data" 
     228 
     229                shift; shift; shift 
     230 
     231                while [ -n "$1" ]; do 
     232                        json_add_string "${1%:*}" "${1#*:}" 
     233                        shift 
     234                done 
     235 
     236                json_close_object 
     237                json_close_object 
     238                return 0 
     239        } 
     240 
     241        local section="${3}" 
     242        config_load "${1}" 
     243        shift; shift; shift 
     244 
     245        while [ -n "$1" ]; do 
     246                local name=${1%%:*} 
     247                local tmp=${1#*:} 
     248                local type=${tmp%%:*} 
     249                local default="" 
     250 
     251                [ "$tmp" = "$type" ] || default=${tmp#*:} 
     252 
     253                shift 
     254                config_get "${name}" "${section}" "${name}" 
     255                eval val=\$$name 
     256 
     257                [ "$type" = "bool" ] && { 
     258                        case "$val" in 
     259                        1|on|true|enabled) val=1;; 
     260                        0|off|false|disabled) val=0;; 
     261                        *) val="";; 
     262                        esac 
     263                } 
     264                [ -z "$val" ] && val=${default} 
     265                eval $name=\"$val\" 
     266                [ -z "$val" ] || { 
     267                        /sbin/validate_data "${type}" "${val}" 
     268                        [ $? -eq 0 ] || error="$((error + 1))" 
     269                } 
     270        done 
     271 
     272        return $error 
    208273} 
    209274 
     
    220285        procd_set_param \ 
    221286        procd_append_param \ 
     287        procd_add_validation \ 
    222288        procd_kill 
Note: See TracChangeset for help on using the changeset viewer.