bashrc_env_export + eval
This commit is contained in:
@@ -31,20 +31,40 @@ function bashrc_watch_end {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function bashrc_env_sync {
|
function _bashrc_env_with_prefix {
|
||||||
env_var="$1"
|
arg1="$1"
|
||||||
env_value="$2"
|
arg2="$2"
|
||||||
if printenv | grep -q "$env_var"; then
|
prefix="$3"
|
||||||
real_value=$(eval "echo \$$env_var")
|
if printenv | grep -q "$arg1"; then
|
||||||
echo "success for $env_var = $real_value"
|
real_value=$(eval "echo \$$arg1")
|
||||||
|
echo "success for $arg1 = $real_value"
|
||||||
else
|
else
|
||||||
session_line="export ${env_var}=${env_value}"
|
case "$prefix" in
|
||||||
append_or_replace "^${session_line}.*" "$session_line" "$HOME/.bashrc" &>/dev/null
|
export)
|
||||||
|
session_line="export ${arg1}=${arg2}"
|
||||||
|
regex="$session_line"
|
||||||
|
;;
|
||||||
|
eval)
|
||||||
|
session_line="eval \"\$($arg2)\""
|
||||||
|
regex="eval \"\\\$\\($arg2\\)\""
|
||||||
|
;;
|
||||||
|
*) echo "unknown prefix $prefix" && exit 10 ;;
|
||||||
|
esac
|
||||||
|
append_or_replace "$regex" "$session_line" "$HOME/.bashrc" &>/dev/null
|
||||||
eval "$session_line"
|
eval "$session_line"
|
||||||
set +e
|
set +e
|
||||||
eval "BASHRC_LINES=$BASHRC_LINES $0"
|
eval "BASHRC_LINES=$BASHRC_LINES $0"
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function bashrc_env_export {
|
||||||
|
_bashrc_env_with_prefix "$1" "$2" 'export'
|
||||||
|
}
|
||||||
|
|
||||||
|
function bashrc_env_eval {
|
||||||
|
_bashrc_env_with_prefix "$1" "$2" 'eval'
|
||||||
}
|
}
|
||||||
|
|
||||||
# main
|
# main
|
||||||
@@ -53,8 +73,9 @@ set -Eeu
|
|||||||
bashrc_watch_start
|
bashrc_watch_start
|
||||||
|
|
||||||
echo 'init'
|
echo 'init'
|
||||||
bashrc_env_sync 'SESSION_RESTART' true
|
bashrc_env_export 'SESSION_RESTART' true
|
||||||
bashrc_env_sync 'TOTO' fluo
|
bashrc_env_export 'TOTO' fluo
|
||||||
|
bashrc_env_eval 'MISE_SHELL' "$HOME/.local/bin/mise activate bash"
|
||||||
echo 'end'
|
echo 'end'
|
||||||
|
|
||||||
bashrc_watch_end
|
bashrc_watch_end
|
||||||
|
|||||||
Reference in New Issue
Block a user