summaryrefslogtreecommitdiff
path: root/src/lib/action.source.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/action.source.sh')
-rw-r--r--src/lib/action.source.sh18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/lib/action.source.sh b/src/lib/action.source.sh
index 165cb2b..aba24a8 100644
--- a/src/lib/action.source.sh
+++ b/src/lib/action.source.sh
@@ -23,6 +23,14 @@ run_simple_action() {
esac
}
+run_action_body() {
+ if [[ "$-" == *e* ]]; then
+ "$@"
+ else
+ ( "$@" )
+ fi
+}
+
load_configured_action() {
local -r rc_file="$1"; shift
local -i status=0
@@ -115,7 +123,7 @@ run_configured_action() {
return "$status"
fi
- generate_staged
+ run_action_body generate_staged
status=$?
if (( status != 0 )); then
return "$status"
@@ -128,7 +136,7 @@ run_configured_action() {
return "$status"
fi
- refresh_splash
+ run_action_body refresh_splash
status=$?
if (( status != 0 )); then
return "$status"
@@ -141,7 +149,7 @@ run_configured_action() {
return "$status"
fi
- sync_dist
+ run_action_body sync_dist
status=$?
if (( status != 0 )); then
return "$status"
@@ -154,7 +162,7 @@ run_configured_action() {
return "$status"
fi
- dry_run
+ run_action_body dry_run
status=$?
if (( status != 0 )); then
return "$status"
@@ -167,7 +175,7 @@ run_configured_action() {
return "$status"
fi
- print_config
+ run_action_body print_config
status=$?
if (( status != 0 )); then
return "$status"