From e11458ad71c89d4be7151c1ff90c263a9353622e Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Sat, 11 Mar 2023 02:32:03 +1100
Subject: [PATCH] prohibits wrapper scripts in function of the service type

---
 src/lib66/parse/parse_compute_resolve.c | 38 ++++++++++++++-----------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/src/lib66/parse/parse_compute_resolve.c b/src/lib66/parse/parse_compute_resolve.c
index b32b31f1..7dc54203 100644
--- a/src/lib66/parse/parse_compute_resolve.c
+++ b/src/lib66/parse/parse_compute_resolve.c
@@ -392,7 +392,7 @@ void parse_compute_resolve(resolve_service_t *res, ssexec_t *info)
     char status[info->base.len + SS_SYSTEM_LEN + SS_SERVICE_LEN + SS_SVC_LEN + 1 + strlen(name) + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
 
     auto_strings(name, res->sa.s + res->name) ;
-    auto_strings(status, info->base.s, SS_SYSTEM, SS_SERVICE, SS_SVC, "/", name, SS_STATE, "/" SS_STATUS) ;
+    auto_strings(status, info->base.s, SS_SYSTEM, SS_SERVICE, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
 
     res->path.status = resolve_add_string(wres, status) ;
 
@@ -482,31 +482,35 @@ void parse_compute_resolve(resolve_service_t *res, ssexec_t *info)
         }
     }
 
-    // {run,up}/{run,up}.user script
-    if (res->type == TYPE_ONESHOT) {
+    if (res->type == TYPE_ONESHOT || res->type == TYPE_CLASSIC) {
 
-        compute_wrapper_scripts(res, &res->execute.run, "up", 1) ;
-        compute_wrapper_scripts_user(res, &res->execute.run, 1) ;
+        // {run,up}/{run,up}.user script
+        if (res->type == TYPE_ONESHOT) {
 
-    } else {
+            compute_wrapper_scripts(res, &res->execute.run, "up", 1) ;
+            compute_wrapper_scripts_user(res, &res->execute.run, 1) ;
 
-        compute_wrapper_scripts(res, &res->execute.run, "run", 1) ;
-        compute_wrapper_scripts_user(res, &res->execute.run, 1) ;
+        } else {
 
-    }
+            compute_wrapper_scripts(res, &res->execute.run, "run", 1) ;
+            compute_wrapper_scripts_user(res, &res->execute.run, 1) ;
 
-    // {finish,down}/{finish,down}.user script
-    if (res->execute.finish.run_user) {
-        if (res->type == TYPE_ONESHOT) {
+        }
 
-            compute_wrapper_scripts(res, &res->execute.finish, "down", 0) ;
-            compute_wrapper_scripts_user(res, &res->execute.finish, 0) ;
+        // {finish,down}/{finish,down}.user script
+        if (res->execute.finish.run_user) {
 
-        } else {
+            if (res->type == TYPE_ONESHOT) {
+
+                compute_wrapper_scripts(res, &res->execute.finish, "down", 0) ;
+                compute_wrapper_scripts_user(res, &res->execute.finish, 0) ;
+
+            } else {
 
-            compute_wrapper_scripts(res, &res->execute.finish, "finish", 0) ;
-            compute_wrapper_scripts_user(res, &res->execute.finish, 0) ;
+                compute_wrapper_scripts(res, &res->execute.finish, "finish", 0) ;
+                compute_wrapper_scripts_user(res, &res->execute.finish, 0) ;
 
+            }
         }
     }
 
-- 
GitLab