make it easier to use netifd-proto.sh as a library
[project/netifd.git] / dummy / netifd-proto.sh
index d15505c..2fbfd4e 100755 (executable)
@@ -26,11 +26,18 @@ add_default_handler() {
        esac
 }
 
+_proto_do_teardown() {
+       json_load "$data"
+       eval "$1_teardown \"$interface\" \"$ifname\""
+}
+
+_proto_do_setup() {
+       json_load "$data"
+       eval "$1_setup \"$interface\" \"$ifname\""
+}
+
 proto="$1"; shift
 cmd="$1"; shift
-interface="$1"; shift
-data="$1"; shift
-ifname="$1"; shift
 
 case "$cmd" in
        dump)
@@ -51,13 +58,17 @@ case "$cmd" in
                        json_dump
                }
        ;;
-       *)
+       setup|teardown)
+               interface="$1"; shift
+               data="$1"; shift
+               ifname="$1"; shift
+
                add_protocol() {
                        [[ "$proto" == "$1" ]] || return 0
 
                        case "$cmd" in
-                               setup) eval "$1_setup \"\$interface\" \"\$data\" \"\$ifname\"" ;;
-                               teardown) eval "$1_teardown \"\$interface\" \"\$data\" \"\$ifname\"" ;;
+                               setup) _proto_do_setup "$1";;
+                               teardown) _proto_do_teardown "$1" ;;
                                *) return 1 ;;
                        esac
                }