summaryrefslogtreecommitdiffstats
path: root/_testing/travis/_get_files_arr.zsh
blob: 9fb632477c232fb921ef046aaad06f079cde6993 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
filelist=(scripts/*.pl)
if [[ $TRAVIS_PULL_REQUEST != false ]] {
    local -a scriptfiles
    OIFS=$IFS; IFS=$'\n'
    scriptfiles=($(git diff --numstat $TRAVIS_BRANCH|cut -f3|grep '^scripts/.*\.pl'))
    IFS=$OIFS
    if [[ $#scriptfiles -gt 0 ]] {
	filelist=($scriptfiles)
    }
} \
elif [[ $USE_ARTEFACTS_CACHE = yes ]] {
    local -a cache_allowed
    OIFS=$IFS; IFS=$'\n'
    cache_allowed=(scripts/${^$(grep -v __ARTEFACTS_CI__ old-artefacts/can-use-cache | cut -f2- -d\  )})
    IFS=$OIFS

    if [[ $REPORT_STAGE == yes ]] {
        autoload -Uz zargs
        { zargs -r -- old-artefacts/Test/${^cache_allowed:t:r} -- mv -nt Test } 2>/dev/null
        cached_run=($cache_allowed)
    } \
    else {
        autoload -Uz is-at-least
        if { is-at-least 5.0.0 } {
            filelist=(${filelist:|cache_allowed})
        } \
        else {
	    # manually filter the array in zsh4
            local -a scriptfiles
            for x ($filelist) {
                if [[ $+cache_allowed[(r)$x] -eq 0 ]] {
                    scriptfiles+=($x)
                }
            }
            filelist=($scriptfiles)
        }
    }
}