From 344f4ab1844cbdfc28e107eaa63e1fb2b315510d Mon Sep 17 00:00:00 2001 From: Renato Silva Date: Wed, 24 Feb 2016 17:48:54 -0300 Subject: [PATCH] Some more refactoring for CI script. --- ci-build.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ci-build.sh b/ci-build.sh index 796d82b467..f43bb6f5fd 100644 --- a/ci-build.sh +++ b/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")"