Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ba61b15 authored by Mike Lockwood's avatar Mike Lockwood
Browse files

init: Allow wildcards in property triggers by using * for property value



For example, the following trigger will fire when the sys.foo property
is set to any value:

on property:sys.foo=*
    write /data/foo hello

It is also possible to refer to the property within the trigger actions:

on property:sys.foo=*
    write /data/foo $sys.foo

Change-Id: If78d20a532f77e17aa5703d53be581ad6736cbcf
Signed-off-by: default avatarMike Lockwood <lockwood@android.com>
parent 2c4d5dc4
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -347,7 +347,8 @@ void queue_property_triggers(const char *name, const char *value)

            if (!strncmp(name, test, name_length) &&
                    test[name_length] == '=' &&
                    !strcmp(test + name_length + 1, value)) {
                    (!strcmp(test + name_length + 1, value) ||
                     !strcmp(test + name_length + 1, "*"))) {
                action_add_queue_tail(act);
            }
        }
@@ -377,7 +378,8 @@ void queue_all_property_triggers()

                    /* does the property exist, and match the trigger value? */
                    value = property_get(prop_name);
                    if (value && !strcmp(equals + 1, value)) {
                    if (value && (!strcmp(equals + 1, value) ||
                                  !strcmp(equals + 1, "*"))) {
                        action_add_queue_tail(act);
                    }
                }