🚼 Bash Buddy(aka. BaBy) contains bash libs and tools that extracted from CI scripts of my open-source projects.
a common lib to show trapped error info including stack trace.
provide function trap_error_info::register_show_error_info_handler
to register the error-trap handler which show error info when trapped error.
by default, auto call trap_error_info::register_show_error_info_handler when source this script; disable by
define TRAP_ERROR_NO_AUTO_REGISTER var.
api functions:
- trap_error_info::get_stack_trace
- trap_error_info::register_show_error_info_handler
common util functions.
use short namespace cu, since these functions will be used frequently.
api functions:
- simple color print functions:
- cu::red_echo
- cu::yellow_echo
- cu::blue_echo
- cu::head_line_echo
 
- validation functions:
- cu::is_number_string
- cu::is_blank_string
 
- version related functions:
- cu::version_le
- cu::version_lt
- cu::version_ge
- cu::version_gt
- cu::is_version_match
- cu::get_latest_version_match
- cu::get_oldest_version_match
 
- execution helper functions:
- cu::log_then_run
- cu::loose_run
- cu::print_calling_command_line
- cu::die
 
java util functions.
api functions:
- jvu::get_java_version
- jvu::switch_to_jdk
- jvu::java_cmd
maven util functions for build.
api functions:
- maven operation functions:
- mvu::mvn_cmd
 
a lib to prepare jdks by sdkman.
api functions:
- prepare_jdks::switch_to_jdk
- prepare_jdks::prepare_jdks
- prepare_jdks::install_jdk_by_sdkman
- prepare_jdks::load_sdkman
- prepare_jdks::install_sdkman
Generate source guard to bash lib scripts.
Example:
$ gen_source_guard
#_ source guard begin _#
[ -n "${source_guard_0EDD6400_96EC_43E4_871A_E65F6781B828:+has_value}" ] && return
source_guard_0EDD6400_96EC_43E4_871A_E65F6781B828=$(realpath -- "${BASH_SOURCE[0]}")
# the value of source guard is the canonical dir path of this script
readonly source_guard_0EDD6400_96EC_43E4_871A_E65F6781B828=${source_guard_0EDD6400_96EC_43E4_871A_E65F6781B828%/*}
#_ source guard end _#