#!/bin/sh
|
|
# wrapper for conditional setting of uci config
|
|
# compare http://wiki.openwrt.org/doc/techref/uci
|
|
|
|
# TODO: add more docs, see http://docs.ansible.com/developing_modules.html
|
|
|
|
# parameters are command, key, value
|
|
source ${1}
|
|
|
|
unquoted_key="$(echo $key | sed -e s/\'//g)"
|
|
unquoted_value="$(echo $value | sed -e s/\'//g)"
|
|
|
|
# test if we need to apply a change
|
|
case $command in
|
|
'set')
|
|
[ "$(uci get "$unquoted_key")" = "$value" ]
|
|
changed=$?
|
|
;;
|
|
'add_list')
|
|
uci get "$unquoted_key" 2>/dev/null |grep -q "$value"
|
|
changed=$?
|
|
;;
|
|
esac
|
|
|
|
if [ $changed -eq 0 ]
|
|
then
|
|
echo -n '{"changed": false}'
|
|
else
|
|
if [ -z "${_ansible_check_mode}" -o "${_ansible_check_mode}" = "False" ]
|
|
then
|
|
logger uci $(uci "${command}" ${unquoted_key}="${unquoted_value}")
|
|
fi
|
|
echo -n '{"changed": true, "msg": "executed uci '${command}' '${unquoted_key}'='${value}'"}'
|
|
fi
|