This library helps you write prettier bash scripts for CI/CD, git hooks, ...
You can require the package via composer for PHP projects, or npm/yarn for Browser/Node projects.
composer require --dev barthy-koeln/bash-echolorized
yarn add -D bash-echolorized
If this package is required via composer:
#!/usr/bin/env bash
DIR=$(realpath "$(dirname "${BASH_SOURCE[0]}")")
# if required via composer
source "$DIR/vendor/bin/echolorized"
# if required via yarn/npm
source "$DIR/node_modules/.bin/echolorized"
e_info "Checking Twig Code"
e_success "All done"
e_warning "Careful!"
e_error "That did NOT work."
Output:
colored_output "$GREEN" "\n[EXECUTING PRE COMMIT HOOK]"
e_info "USE ${YELLOW}git commit -n -m 'your message'${RESET} to bypass these checks."
echo -e ''
e_info "Checking YAML config"
if ! "$DIR/console" --quiet lint:yaml config; then
e_error "Error in YAML config. Run ${YELLOW}bin/console lint:yaml${RESET} to check.\n"
exit 1
fi
e_success "All good, staging additional changes.\n"
git update-index --again
Output:
tagged_output "$YELLOW" "BUILD" "Fetching dependencies"
tagged_output "$YELLOW" "BUILD" "Building bundles"
tagged_output "$YELLOW" "BUILD" "Making binaries executable"
tagged_output "$GREEN" "TEST" "Tests are green" " "
tagged_output "$RED" "¯\_(ツ)_/¯" "Dunno..?\n" "\n"
tagged_output "$YELLOW" "DIRECTORY" "src"
tagged_output "$GREEN" "FILE" "README.md" "\t"
tagged_output "$GREEN" "FILE" "package.json" "\t"
tagged_output "$GREEN" "FILE" "composer.json" "\t"
Output:
colored_output() {
# $1: Color
# $2: Text
}
tagged_output() {
# $1: Color
# $2: Tag
# $3: After tag
# $4: Before tag (tabs, newlines, ...)
}