* feat(themes): added new theme
* fix(themes): screenshot updated
* fix(themes): image sizing
* chore(themes): updated theme description
* style(themes/developer): fix the indentation
* refactor(themes/developer): prefix "_omb_theme_developer_" to internal functions
* refactor(themes/developer): delimit returned values with newlines
"grep -P" is not POSIX. Instead of using PCRE to extract the results
separated by "---", we can simply separate the results with newlines
and use standard utilities (which assumes line-oriented data) to
manipulate the data.
* refactor(themes/developer): use "_omb_util_command_exists"
* refactor(themes/developer): use awk to pick the activated conda env
* fix(themes/developer): remove meaningless forks
* fix(themes/developer): use "_omb_util_put" instead of "printf"
* style(themes/developer): fix coding styles
* chore(themes/developer): clean up codes for debugging
* fix(themes/developer): fix wronge uses of arithmetic commands
* fix(themes/developer): localize variables used in functions
* refactor(themes/developer): use "return_delimited" at the end of functions
* fix(themes/developer): fix a problem that it sometimes fails to extract CPU usage
* fix(themes/developer): avoid mixing stdout
This attempted to run the commands to extract information in parallel,
but this may result in interleaved information in some operating
system (depending on the way how the C library performs buffering and
how the syscall write(2) issued by multiple processes would interfere
with one another).
There are other parts we can optimize, so we would compensate the
overhead with the optimization of other parts.
* perf(themes/developer): load prompt information through REPLY
* perf(themes/developer): reduce the number of forks
* fix(themes/developer): suppress error message of non-existent commands
* fix(themes/developer): disable prompt element with unavailable information
---------
Co-authored-by: Koichi Murase <myoga.murase@gmail.com>
We thought that we already have `extglob` turned on, but it was just
turned on by bash-completion that we loaded from "lib/bourne-shell".
When the sytem does not have bash-completion, the extglob settings are
not enabled and thus causes an issue with constructs using extglob.
We already turn on many glob features in "lib/shopt", and there does
not seem to be reason not to turn on "extglob". In this patch, we
enable it by default.
Regression introduced by commit 52987b3d. This is a typo. The reason
that it slipped off checking was because the syntax "if (()) then"
became valid in Bash 5.2, and it was tested using Bash 5.3-alpha.