procd: support generic mount triggers and clean up
authorDaniel Golle <daniel@makrotopia.org>
Sun, 30 Jan 2022 19:37:41 +0000 (19:37 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 30 Jan 2022 20:16:25 +0000 (20:16 +0000)
Allow init scripts to trigger free-form actions by exposing
procd_add_action_mount_trigger.
Clean up mount trigger wrappers while at it to reduce code duplication.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
package/system/procd/files/procd.sh

index 2284f55ed2b80673efbbd1a4bbed46aa6cfe0179..5148b2f03c3511ee5c3de1d5d631ecd5a26c730a 100644 (file)
@@ -363,14 +363,15 @@ _procd_add_mount_trigger() {
 }
 
 _procd_add_action_mount_trigger() {
-       local script=$(readlink "$initscript")
-       local name=$(basename ${script:-$initscript})
        local action="$1"
-       local mpath
        shift
+       local mountpoints="$(procd_get_mountpoints "$@")"
+       [ "${mountpoints//[[:space:]]}" ] || return 0
+       local script=$(readlink "$initscript")
+       local name=$(basename ${script:-$initscript})
 
        _procd_open_trigger
-       _procd_add_mount_trigger mount.add $action "$@"
+       _procd_add_mount_trigger mount.add $action "$mountpoints"
        _procd_close_trigger
 }
 
@@ -384,7 +385,7 @@ procd_get_mountpoints() {
                        target="${target%%/}/"
                        [ "$path" != "${path##$target}" ] && echo "${target%%/}"
                }
-
+               local mpath
                config_load fstab
                for mpath in "$@"; do
                        config_foreach __procd_check_mount mount "$mpath"
@@ -393,15 +394,11 @@ procd_get_mountpoints() {
 }
 
 _procd_add_restart_mount_trigger() {
-       local mountpoints="$(procd_get_mountpoints "$@")"
-       [ "${mountpoints//[[:space:]]}" ] &&
-               _procd_add_action_mount_trigger restart $mountpoints
+       _procd_add_action_mount_trigger restart "$@"
 }
 
 _procd_add_reload_mount_trigger() {
-       local mountpoints="$(procd_get_mountpoints "$@")"
-       [ "${mountpoints//[[:space:]]}" ] &&
-               _procd_add_action_mount_trigger reload $mountpoints
+       _procd_add_action_mount_trigger reload "$@"
 }
 
 _procd_add_raw_trigger() {
@@ -638,6 +635,7 @@ _procd_wrapper \
        procd_add_mount_trigger \
        procd_add_reload_trigger \
        procd_add_reload_interface_trigger \
+       procd_add_action_mount_trigger \
        procd_add_reload_mount_trigger \
        procd_add_restart_mount_trigger \
        procd_open_trigger \