lib/version.bash (28 lines of code) (raw):

#!/usr/bin/env bash set -euo pipefail # Get the version from the file # Also supports .tool-versions file (asdf-vm) # Arguments: # $1: The file where the version is stored # Returns: # version function get_version_from_file() { local -r filename=$1 if [[ ! -f ${filename} ]]; then >&2 echo "version-file not found: ${filename}" return 1 fi case $(basename "$filename") in ".tool-versions") grep "^oblt-cli" "${filename}" | awk '{ printf $2 }' ;; *) tr -d '[:space:]' <"${filename}" ;; esac } # Get the version from the input or file # If the input is not empty, it will return the input # Otherwise, it will return the version from the file # Arguments: # $1: The version provided as plugin property # $2: The file where the version is stored # Returns: # version function get_version_from_input_or_file() { local -r input_version=$1 local -r version_file=$2 if [[ -n ${input_version} && -n ${version_file} ]]; then buildkite-agent annotate "elastic/oblt-cli plugin: Both version and version-file are provided. Using version: ${input_version}." --style=warning --context=ctx-version fi if [[ -n ${input_version} ]]; then echo "${input_version}" return fi get_version_from_file "${version_file}" }