This module provides a derived type build_progress_t
for printing build status
and progress messages to the console while the backend is building the package.
The build_progress_t
type supports two modes: normal
and plain
where the former does ‘pretty’ output and the latter does not.
The normal
mode is intended for typical interactive usage whereas
‘plain’ mode is used with the --verbose
flag or when stdout
is not attached
to a terminal (e.g. when piping or redirecting stdout
). In these cases,
the pretty output must be suppressed to avoid control codes being output.
Constructor for build_progress_t
Initialise a new build progress object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(build_target_ptr), | intent(in), | target | :: | target_queue(:) |
The queue of scheduled targets |
|
logical, | intent(in), | optional | :: | plain_mode |
Enable ‘plain’ output for progress object |
Progress object to initialise
Build progress object
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(console_t), | public | :: | console |
Console object for updating console lines |
|||
integer, | public | :: | n_complete |
Number of completed targets |
|||
integer, | public | :: | n_target |
Total number of targets scheduled |
|||
integer, | public, | allocatable | :: | output_lines(:) |
Store needed when updating previous console lines |
||
logical, | public | :: | plain_mode | = | .true. |
‘Plain’ output (no colors or updating) |
|
type(build_target_ptr), | public, | pointer | :: | target_queue(:) |
Queue of scheduled build targets |
Constructor for build_progress_t
private function new_build_progress (target_queue, plain_mode) | Initialise a new build progress object |
procedure, public :: compiling_status => output_status_compiling | ../../ Output ‘compiling’ status for build target |
procedure, public :: completed_status => output_status_complete | ../../ Output ‘complete’ status for build target |
procedure, public :: success => output_progress_success | ../../ Output finished status for whole package |