diff options
author | Anna (navi) Figueiredo Gomes <navi@vlhl.dev> | 2023-06-15 16:14:00 -0300 |
---|---|---|
committer | Anna (navi) Figueiredo Gomes <navi@vlhl.dev> | 2023-10-19 10:56:54 +0200 |
commit | 8d697f662cf2e59930f6b79726502cc016cec325 (patch) | |
tree | 0ec15b21f9dcc7de6baafeeabc2c1eabdc82f4ab /sh/rc-functions.sh | |
parent | b7caeb07a5f6e9adae326c51367cd522a05fbdac (diff) |
openrc-run.sh: save and load variables on default start
temporary system for testing, it's gonna store any environment variables
defined in export_vars="", and subsequent services will load them.
ideally we only want to load the variables saved by services we depend
on, so that would change later.
Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
Diffstat (limited to 'sh/rc-functions.sh')
-rw-r--r-- | sh/rc-functions.sh | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sh/rc-functions.sh b/sh/rc-functions.sh index 81d065b8..922bb870 100644 --- a/sh/rc-functions.sh +++ b/sh/rc-functions.sh @@ -134,6 +134,23 @@ _depend() { done } +save_variables() { + mkdir -p "${RC_SVCDIR}"/env/ + + local _envname + + if [ -n "${export_vars}" ]; then + rm "${RC_SVCDIR}/env/${RC_SVCNAME}" + for _envname in ${export_vars}; do + eval echo "${_envname}=\$${_envname}" >> "${RC_SVCDIR}/env/${RC_SVCNAME}" + done + fi +} + +load_variables() { + sourcex -e "${RC_SVCDIR}/env/*" +} + # Add our sbin to $PATH case "$PATH" in "$RC_LIBEXECDIR"/sbin|"$RC_LIBEXECDIR"/sbin:*);; |