diff options
author | Lyndon Brown <jnqnfe@gmail.com> | 2020-03-18 01:28:58 +0000 |
---|---|---|
committer | Raphaƫl Hertzog <hertzog@debian.org> | 2020-03-23 08:06:51 +0000 |
commit | 39dae8cdc737071a6ba8fe2f0b5bf9b35655c5ce (patch) | |
tree | a55cfe2a069ce14b5062dec3ff38ce082bfd0f6c | |
parent | 85e0681ee88a293e35bd77e613010663f274ece5 (diff) | |
download | vyos-live-build-39dae8cdc737071a6ba8fe2f0b5bf9b35655c5ce.tar.gz vyos-live-build-39dae8cdc737071a6ba8fe2f0b5bf9b35655c5ce.zip |
move auto colouring decision
...from the `Set_config_defaults` function, to being done directly
in `build.sh` (the component which is also responsible for loading
functions, loaded at the start of every script, including the front
end).
thus the colouring decision will now correctly...
- apply to the frontend, such as to the 'root privileges needed'
error, the 'no such script' error, and the command name
colouring that I want to add (the most significant issue).
- apply to error messages generated by the `Arguments` and
`Read_conffiles` functions, which are called before
`Set_config_defaults` by scripts.
as things were, due to the comparison with "false", colour would
_always_ be used in these places (unless _COLOR_ERR=false or
_COLOR_OUT=false wrt. the new command highlight, were set in the
environment when executing a script throught the frontend).
this would not be a problem for normal terminal use of course,
besides being inconsistent where color were turned off, but would
be a bit of a problem if redirected to a file.
a re-evaluation of _COLOR is performed in `Set_config_defaults` to
adjust _COLOR_OUT and _COLOR_ERR where necessary, to correctly
respond to _COLOR being set in saved config files (disabled by
default but a user could always enable), after the point of config
files being loaded.
_COLOR can still be controlled from the environment just as before,
overriding both _COLOR_OUT and _COLOR_ERR.
note that this does not address the fact that --color|--no-color
do not work in the frontend and thus will not impact the colouring
of to-be-introduced command highlighting. this needs to be
addressed separately.
Gbp-Dch: Short
-rwxr-xr-x | functions/defaults.sh | 23 | ||||
-rwxr-xr-x | scripts/build.sh | 15 |
2 files changed, 26 insertions, 12 deletions
diff --git a/functions/defaults.sh b/functions/defaults.sh index cd28abdbd..2b7a1e27b 100755 --- a/functions/defaults.sh +++ b/functions/defaults.sh @@ -200,20 +200,19 @@ Set_config_defaults () LB_TASKSEL="${LB_TASKSEL:-apt}" # Setting live build options - if [ -z "${_COLOR}" ]; then - _COLOR="auto" - _COLOR_OUT="true" - _COLOR_ERR="true" - if [ ! -t 1 ]; then + # Colouring is re-evaluated here just incase a hard coded override was given in the saved config + case "${_COLOR}" in + true) + _COLOR_OUT="true" + _COLOR_ERR="true" + ;; + false) _COLOR_OUT="false" - fi - if [ ! -t 2 ]; then _COLOR_ERR="false" - fi - else - _COLOR_OUT="${_COLOR}" - _COLOR_ERR="${_COLOR}" - fi + ;; + auto) + ;; + esac _BREAKPOINTS="${_BREAKPOINTS:-false}" _DEBUG="${_DEBUG:-false}" _FORCE="${_FORCE:-false}" diff --git a/scripts/build.sh b/scripts/build.sh index 4eb99d3d5..6a5b541d2 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -23,6 +23,21 @@ set -e +if [ -z "${_COLOR}" ]; then + _COLOR="auto" + _COLOR_OUT="true" + _COLOR_ERR="true" + if [ ! -t 1 ]; then + _COLOR_OUT="false" + fi + if [ ! -t 2 ]; then + _COLOR_ERR="false" + fi +else + _COLOR_OUT="${_COLOR}" + _COLOR_ERR="${_COLOR}" +fi + if [ -e local/live-build ] then LIVE_BUILD="${LIVE_BUILD:-${PWD}/local/live-build}" |