Some more refactoring for CI script.
This commit is contained in:
12
ci-build.sh
12
ci-build.sh
@@ -7,14 +7,14 @@
|
||||
# Functions
|
||||
failure() { colored; printf "\n${red}[MSYS2 CI] FAILURE:${normal} ${1}.\n\n"; exit 1; }
|
||||
success() { colored; printf "\n${green}[MSYS2 CI] SUCCESS:${normal} ${1}.\n\n"; exit 0; }
|
||||
status() { colored; printf "\n${cyan}[MSYS2 CI]${normal} ${1}\n\n"; printf "${2:+\t%s\n}" "${2:+${@:2}}" | sed 's/.*::/\t/'; }
|
||||
colored() { [[ -t 1 && -z "${normal}" ]] || return; normal='\e[0m'; red='\e[1;31m'; green='\e[1;32m'; cyan='\e[1;36m'; }
|
||||
status() { colored; printf "\n${cyan}[MSYS2 CI]${normal} ${1}\n\n"; printf "${2:+\t%s\n}" "${2:+${@:2}}"; }
|
||||
colored() { [[ -t 1 && -z "${normal}" ]] || return; normal='\e[0m'; red='\e[1;31m'; green='\e[1;32m'; cyan='\e[1;36m'; }
|
||||
execute() { cd "${package:-.}"; status "${package:+$package: }${1}"; ${@:2} || failure "${package:+$package: }${1} failed"; cd - > /dev/null; }
|
||||
git_config() { test -n "$(git config ${1})" && return 0; git config --global "${1}" "${2}" || failure 'Could not configure Git for makepkg'; }
|
||||
as_list() { result=(); local lines=(); while IFS= read -r line; do lines+=("${line}"); [[ "${line}" = ${1} ]] && result+=("${line}"); done <<<"${2}"; test -n "${lines}"; }
|
||||
list_changes() { as_list "${1}" "$(git log "${@:2}" upstream/master.. | grep -v ^$ | sort -u)" || as_list "${1}" "$(git log "${@:2}" HEAD^.. | grep -v ^$ | sort -u)"; }
|
||||
list_packages() { packages=(); list_changes '*/PKGBUILD' --pretty=format: --name-only && for recipe in "${result[@]}"; do packages+=("${recipe%/PKGBUILD}"); done; }
|
||||
list_commits() { commits=(); list_changes '*' --pretty=format:'%ai::[%h] %s' && commits=("${result[@]}"); }
|
||||
as_list() { local -n nameref="${1}"; local result=1; while IFS= read -r line; do test -z "${line}" && continue; result=0; [[ "${line}" = ${2} ]] && nameref+=("${line/${3}/}"); done <<<"${4}"; return ${result}; }
|
||||
list_changes() { as_list "${@:1:3}" "$(git log "${@:4}" upstream/master.. | sort -u)" || as_list "${@:1:3}" "$(git log "${@:4}" HEAD^.. | sort -u)"; }
|
||||
list_packages() { list_changes packages '*/PKGBUILD' '%/PKGBUILD' --pretty=format: --name-only; }
|
||||
list_commits() { list_changes commits '*' '#*::' --pretty=format:'%ai::[%h] %s'; }
|
||||
|
||||
# Configure
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
Reference in New Issue
Block a user