Skip to content

Commit c01f665

Browse files
committed
2022.08.11:
* fixed: bash/github/print-*.sh: execution fixup
1 parent d7d08bf commit c01f665

File tree

8 files changed

+172
-32
lines changed

8 files changed

+172
-32
lines changed

bash/github/print-error-ln.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
# NOTE:
4+
# This is a composite script to use from a composite GitHub action.
5+
#
6+
7+
# Script both for execution and inclusion.
8+
[[ -z "$BASH" || (-n "$SOURCE_GHWF_PRINT_ERROR_LN_SH" && SOURCE_GHWF_PRINT_ERROR_LN_SH -ne 0) ]] && return
9+
10+
SOURCE_GHWF_PRINT_ERROR_LN_SH=1 # including guard
11+
12+
[[ -z "$GH_WORKFLOW_ROOT" ]] && {
13+
echo "$0: error: \`GH_WORKFLOW_ROOT\` variable must be defined." >&2
14+
exit 255
15+
}
16+
17+
source "$GH_WORKFLOW_ROOT/_externals/tacklelib/bash/tacklelib/bash_tacklelib" || exit $?
18+
19+
tkl_include_or_abort "$GH_WORKFLOW_ROOT/bash/github/print-error.sh"
20+
21+
22+
if [[ -z "$BASH_LINENO" || BASH_LINENO[0] -eq 0 ]]; then
23+
# Script was not included, then execute it.
24+
gh_print_error_ln "$@"
25+
fi

bash/github/print-error.sh

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99

1010
SOURCE_GHWF_PRINT_ERROR_SH=1 # including guard
1111

12+
[[ -z "$GH_WORKFLOW_ROOT" ]] && {
13+
echo "$0: error: \`GH_WORKFLOW_ROOT\` variable must be defined." >&2
14+
exit 255
15+
}
16+
1217
source "$GH_WORKFLOW_ROOT/_externals/tacklelib/bash/tacklelib/bash_tacklelib" || exit $?
1318

1419
tkl_include_or_abort "$GH_WORKFLOW_ROOT/bash/github/print.sh"
@@ -57,14 +62,30 @@ function gh_print_error_ln()
5762
# with check on integer value
5863
[[ -n "$PRINT_ERROR_LAG_FSEC" && -z "${PRINT_ERROR_LAG_FSEC//[0-9]/}" ]] && sleep $PRINT_ERROR_LAG_FSEC
5964

60-
if [[ -n "$GITHUB_ACTIONS" ]]; then
61-
for arg in "$@"; do
62-
line="${line}${line:+"%0D%0A"}$arg"
63-
done
64-
echo "::error ::$line" >&2
65-
else
66-
echo "$*" >&2
67-
fi
65+
gh_print_error_ln_nobuf_nolag "$@"
66+
fi
67+
}
68+
69+
function gh_print_error_ln_nobuf_nolag()
70+
{
71+
local IFS=$'\n'
72+
local line=''
73+
local arg
74+
75+
# with check on integer value
76+
[[ -n "$PRINT_ERROR_LAG_FSEC" && -z "${PRINT_ERROR_LAG_FSEC//[0-9]/}" ]] && sleep $PRINT_ERROR_LAG_FSEC
77+
78+
# fix GitHub log issue when a trailing line return charcter in the message does convert into blank line
79+
80+
if [[ -n "$GITHUB_ACTIONS" ]]; then
81+
for arg in "$@"; do
82+
line="${line}${line:+"%0D%0A"}$arg"
83+
done
84+
gh_trim_trailing_line_return_chars "$line"
85+
echo "::error ::$RETURN_VALUE" >&2
86+
else
87+
gh_trim_trailing_line_return_chars "$*"
88+
echo "$*" >&2
6889
fi
6990
}
7091

@@ -81,12 +102,12 @@ function gh_print_errors_nobuf_nolag()
81102
if [[ -n "$GITHUB_ACTIONS" ]]; then
82103
for arg in "$@"; do
83104
gh_trim_trailing_line_return_chars "$arg"
84-
echo -n "::error ::$RETURN_VALUE" # without line return
105+
echo "::error ::$RETURN_VALUE"
85106
done >&2
86107
else
87108
for arg in "$@"; do
88109
gh_trim_trailing_line_return_chars "$arg"
89-
echo "::error ::$RETURN_VALUE" # with line return
110+
echo "$RETURN_VALUE"
90111
done >&2
91112
fi
92113
}

bash/github/print-notice-ln.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
# NOTE:
4+
# This is a composite script to use from a composite GitHub action.
5+
#
6+
7+
# Script both for execution and inclusion.
8+
[[ -z "$BASH" || (-n "$SOURCE_GHWF_PRINT_NOTICE_LN_SH" && SOURCE_GHWF_PRINT_NOTICE_LN_SH -ne 0) ]] && return
9+
10+
SOURCE_GHWF_PRINT_NOTICE_LN_SH=1 # including guard
11+
12+
[[ -z "$GH_WORKFLOW_ROOT" ]] && {
13+
echo "$0: error: \`GH_WORKFLOW_ROOT\` variable must be defined." >&2
14+
exit 255
15+
}
16+
17+
source "$GH_WORKFLOW_ROOT/_externals/tacklelib/bash/tacklelib/bash_tacklelib" || exit $?
18+
19+
tkl_include_or_abort "$GH_WORKFLOW_ROOT/bash/github/print-notice.sh"
20+
21+
22+
if [[ -z "$BASH_LINENO" || BASH_LINENO[0] -eq 0 ]]; then
23+
# Script was not included, then execute it.
24+
gh_print_notice_ln "$@"
25+
fi

bash/github/print-notice.sh

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99

1010
SOURCE_GHWF_PRINT_NOTICE_SH=1 # including guard
1111

12+
[[ -z "$GH_WORKFLOW_ROOT" ]] && {
13+
echo "$0: error: \`GH_WORKFLOW_ROOT\` variable must be defined." >&2
14+
exit 255
15+
}
16+
1217
source "$GH_WORKFLOW_ROOT/_externals/tacklelib/bash/tacklelib/bash_tacklelib" || exit $?
1318

1419
tkl_include_or_abort "$GH_WORKFLOW_ROOT/bash/github/print.sh"
@@ -57,14 +62,27 @@ function gh_print_notice_ln()
5762
# with check on integer value
5863
[[ -n "$PRINT_NOTICE_LAG_FSEC" && -z "${PRINT_NOTICE_LAG_FSEC//[0-9]/}" ]] && sleep $PRINT_NOTICE_LAG_FSEC
5964

60-
if [[ -n "$GITHUB_ACTIONS" ]]; then
61-
for arg in "$@"; do
62-
line="${line}${line:+"%0D%0A"}$arg"
63-
done
64-
echo "::notice ::$line"
65-
else
66-
echo "$*"
67-
fi
65+
gh_print_notice_ln_nobuf_nolag "$@"
66+
fi
67+
}
68+
69+
function gh_print_notice_ln_nobuf_nolag()
70+
{
71+
local IFS=$'\n'
72+
local line=''
73+
local arg
74+
75+
# fix GitHub log issue when a trailing line return charcter in the message does convert into blank line
76+
77+
if [[ -n "$GITHUB_ACTIONS" ]]; then
78+
for arg in "$@"; do
79+
line="${line}${line:+"%0D%0A"}$arg"
80+
done
81+
gh_trim_trailing_line_return_chars "$line"
82+
echo "::notice ::$RETURN_VALUE"
83+
else
84+
gh_trim_trailing_line_return_chars "$*"
85+
echo "$RETURN_VALUE"
6886
fi
6987
}
7088

@@ -78,12 +96,12 @@ function gh_print_notices_nobuf_nolag()
7896
if [[ -n "$GITHUB_ACTIONS" ]]; then
7997
for arg in "$@"; do
8098
gh_trim_trailing_line_return_chars "$arg"
81-
echo -n "::notice ::$RETURN_VALUE" # without line return
99+
echo "::notice ::$RETURN_VALUE"
82100
done
83101
else
84102
for arg in "$@"; do
85103
gh_trim_trailing_line_return_chars "$arg"
86-
echo "::notice ::$RETURN_VALUE" # with line return
104+
echo "$RETURN_VALUE"
87105
done
88106
fi
89107
}

bash/github/print-warning-ln.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
# NOTE:
4+
# This is a composite script to use from a composite GitHub action.
5+
#
6+
7+
# Script both for execution and inclusion.
8+
[[ -z "$BASH" || (-n "$SOURCE_GHWF_PRINT_WARNING_LN_SH" && SOURCE_GHWF_PRINT_WARNING_LN_SH -ne 0) ]] && return
9+
10+
SOURCE_GHWF_PRINT_WARNING_LN_SH=1 # including guard
11+
12+
[[ -z "$GH_WORKFLOW_ROOT" ]] && {
13+
echo "$0: error: \`GH_WORKFLOW_ROOT\` variable must be defined." >&2
14+
exit 255
15+
}
16+
17+
source "$GH_WORKFLOW_ROOT/_externals/tacklelib/bash/tacklelib/bash_tacklelib" || exit $?
18+
19+
tkl_include_or_abort "$GH_WORKFLOW_ROOT/bash/github/print-warning.sh"
20+
21+
22+
if [[ -z "$BASH_LINENO" || BASH_LINENO[0] -eq 0 ]]; then
23+
# Script was not included, then execute it.
24+
gh_print_warning_ln "$@"
25+
fi

bash/github/print-warning.sh

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99

1010
SOURCE_GHWF_PRINT_WARNING_SH=1 # including guard
1111

12+
[[ -z "$GH_WORKFLOW_ROOT" ]] && {
13+
echo "$0: error: \`GH_WORKFLOW_ROOT\` variable must be defined." >&2
14+
exit 255
15+
}
16+
1217
source "$GH_WORKFLOW_ROOT/_externals/tacklelib/bash/tacklelib/bash_tacklelib" || exit $?
1318

1419
tkl_include_or_abort "$GH_WORKFLOW_ROOT/bash/github/print.sh"
@@ -57,14 +62,27 @@ function gh_print_warning_ln()
5762
# with check on integer value
5863
[[ -n "$PRINT_WARNING_LAG_FSEC" && -z "${PRINT_WARNING_LAG_FSEC//[0-9]/}" ]] && sleep $PRINT_WARNING_LAG_FSEC
5964

60-
if [[ -n "$GITHUB_ACTIONS" ]]; then
61-
for arg in "$@"; do
62-
line="${line}${line:+"%0D%0A"}$arg"
63-
done
64-
echo "::warning ::$line" >&2
65-
else
66-
echo "$*" >&2
67-
fi
65+
gh_print_warning_ln_nobuf_nolag "$@"
66+
fi
67+
}
68+
69+
function gh_print_warning_ln_nobuf_nolag()
70+
{
71+
local IFS=$'\n'
72+
local line=''
73+
local arg
74+
75+
# fix GitHub log issue when a trailing line return charcter in the message does convert into blank line
76+
77+
if [[ -n "$GITHUB_ACTIONS" ]]; then
78+
for arg in "$@"; do
79+
line="${line}${line:+"%0D%0A"}$arg"
80+
done
81+
gh_trim_trailing_line_return_chars "$line"
82+
echo "::warning ::$RETURN_VALUE" >&2
83+
else
84+
gh_trim_trailing_line_return_chars "$*"
85+
echo "$RETURN_VALUE" >&2
6886
fi
6987
}
7088

@@ -78,12 +96,12 @@ function gh_print_warnings_nobuf_nolag()
7896
if [[ -n "$GITHUB_ACTIONS" ]]; then
7997
for arg in "$@"; do
8098
gh_trim_trailing_line_return_chars "$arg"
81-
echo -n "::warning ::$RETURN_VALUE" # without line return
99+
echo "::warning ::$RETURN_VALUE"
82100
done >&2
83101
else
84102
for arg in "$@"; do
85103
gh_trim_trailing_line_return_chars "$arg"
86-
echo "::warning ::$RETURN_VALUE" # with line return
104+
echo "$RETURN_VALUE"
87105
done >&2
88106
fi
89107
}

bash/github/print.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99

1010
SOURCE_GHWF_PRINT_SH=1 # including guard
1111

12+
[[ -z "$GH_WORKFLOW_ROOT" ]] && {
13+
echo "$0: error: \`GH_WORKFLOW_ROOT\` variable must be defined." >&2
14+
exit 255
15+
}
16+
1217
source "$GH_WORKFLOW_ROOT/_externals/tacklelib/bash/tacklelib/bash_tacklelib" || exit $?
1318

1419
tkl_include_or_abort "$GH_WORKFLOW_ROOT/bash/github/utils.sh"
@@ -73,12 +78,12 @@ function gh_print_args()
7378
if [[ -n "$GITHUB_ACTIONS" ]]; then
7479
for arg in "$@"; do
7580
gh_trim_trailing_line_return_chars "$arg"
76-
echo -n "$RETURN_VALUE" >&2 # without line return
81+
echo "$RETURN_VALUE"
7782
done
7883
else
7984
for arg in "$@"; do
8085
gh_trim_trailing_line_return_chars "$arg"
81-
echo "$RETURN_VALUE" >&2 # with line return
86+
echo "$RETURN_VALUE"
8287
done
8388
fi
8489
}

changelog.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
2022.08.11:
2+
* fixed: bash/github/print-*.sh: execution fixup
3+
14
2022.08.10:
25
* fixed: bash/github/print-*.sh: notices, warnings, errors functions fixup
36
* fixed: bash/github/accum-rate-limits.sh: json format change fixup

0 commit comments

Comments
 (0)