From 7ead9b132dd6f55c3268e479aa01dcdb8280bdf9 Mon Sep 17 00:00:00 2001 From: Andrew Robbins Date: Fri, 26 Apr 2019 23:16:20 -0400 Subject: libs/project: Print project_action() footer, always Previously, the footer would not print if the project action failed due to 'set -e' still being in effect (the subshell would return with a non-zero exit code and exit immediately). The purpose of the subshell for the project action is to better separate the execution environment of the project from the library functions it calls. The test condition in the if-statement and its consequents were changed in order to be more concise and informative. --- libs/project | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/libs/project b/libs/project index 52888e32..e5088265 100755 --- a/libs/project +++ b/libs/project @@ -147,21 +147,26 @@ project_action() { return 0 fi - printf '%s\n\n' "Project $project $action (with ${arguments:-no argument})" - ( set +e - "$action" "$@" - ) + printf '%s\n\n' "Project $project $action (with ${arguments:-no argument})" - if [[ $? -eq 0 ]]; then - printf '\n%s\n' "Project $project $action (with ${arguments:-no argument}) completed" - else - printf 1>&2 '\n%s\n' "Project $project $action (with ${arguments:-no argument}) failed" + ( + "$action" "$@" + ) + + local -i exit_status=$? + + if ((exit_status)); then + printf 1>&2 '\n%s\n' "Project $project $action (with ${arguments:-no argument}) failed" + else + printf '\n%s\n' "Project $project $action (with ${arguments:-no argument}) completed" + fi + + exit $exit_status + ) - return 1 - fi } project_action_check() { -- cgit v1.2.3-70-g09d2 From 8c080431797cad48d5135ba5b2e5561a2ff81967 Mon Sep 17 00:00:00 2001 From: Andrew Robbins Date: Thu, 25 Apr 2019 23:34:29 -0400 Subject: libs/project: Remove extraneous newlines in header/footer The extra newlines make actions with no output look strange. --- libs/project | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/project b/libs/project index e5088265..8f4ef233 100755 --- a/libs/project +++ b/libs/project @@ -150,7 +150,7 @@ project_action() { ( set +e - printf '%s\n\n' "Project $project $action (with ${arguments:-no argument})" + printf '%s\n' "Project $project $action (with ${arguments:-no argument})" ( "$action" "$@" @@ -159,9 +159,9 @@ project_action() { local -i exit_status=$? if ((exit_status)); then - printf 1>&2 '\n%s\n' "Project $project $action (with ${arguments:-no argument}) failed" + printf 1>&2 '%s\n' "Project $project $action (with ${arguments:-no argument}) failed" else - printf '\n%s\n' "Project $project $action (with ${arguments:-no argument}) completed" + printf '%s\n' "Project $project $action (with ${arguments:-no argument}) completed" fi exit $exit_status -- cgit v1.2.3-70-g09d2