From b6bb2241d097279880e017309ed35f6f665b2c80 Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Mon, 18 Jan 2021 08:44:17 +1100
Subject: [PATCH] automatically add the env @options if the [environment] is
 set

---
 src/lib66/parser_utils.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/src/lib66/parser_utils.c b/src/lib66/parser_utils.c
index 284bff3a..fe626dea 100644
--- a/src/lib66/parser_utils.c
+++ b/src/lib66/parser_utils.c
@@ -841,6 +841,26 @@ int keep_environ(sv_alltype *service,keynocheck *nocheck)
                 log_warnu_return(LOG_EXIT_ZERO,"clean environment value") ;
             if (!auto_stra(&service->saenv,nocheck->val.s))
                 log_warnu_return(LOG_EXIT_ZERO,"store environment value") ;
+            {
+                /** The declaration of the [environment] automatically add
+                 * the @options=(env) */
+                if (!service->opts[2]) {
+
+                    stralloc saconf = STRALLOC_ZERO ;
+                    if (!env_resolve_conf(&saconf,keep.s + service->cname.name,MYUID)) {
+                        stralloc_free(&saconf) ;
+                        return 0 ;
+                    }
+                    service->srconf = keep.len ;
+                    if (!stralloc_catb(&keep,saconf.s,saconf.len + 1)) {
+                        stralloc_free(&saconf) ;
+                        return 0 ;
+                    }
+                    service->opts[2] = 1 ;
+                    stralloc_free(&saconf) ;
+                }
+            }
+            ;
             break ;
         default: log_warn_return(LOG_EXIT_ZERO,"unknown key: ",get_key_by_enum(ENUM_KEY_SECTION_ENVIRON,nocheck->idkey)) ;
     }
-- 
GitLab