Repository navigation
Expand file tree
/
Copy pathENV.sh
More file actions
175 lines (150 loc) · 4.11 KB
/
Copy pathENV.sh
File metadata and controls
175 lines (150 loc) · 4.11 KB
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#!/usr/bin/env bash
main() {
_check_if_being_sourced;
_check_directory_with_all_repos;
export RENARD_TEST_DATA_PATH=$(_repo_dir "test-data")
export RENARD_SCRIPT_BASE=$(_repo_dir "devops")/script
export PATH=$PATH:$(_repo_dir "devops")/../script
#if which got-perl5lib >/dev/null; then eval "$(got-perl5lib -t renard -T alien)"; fi
}
_repo_dir () {
DIR_NAME="$1"
_check_directory_with_all_repos;
_check_in_wrapper;
if [ 1 == "$RENARD_IN_WRAPPER" ]; then
echo "$RENARD_ALL_REPO_DIR/$DIR_NAME/$DIR_NAME"
else
echo "$RENARD_ALL_REPO_DIR/$DIR_NAME"
fi
}
_check_source_env_script_dir () {
# works in sourced files, only works for bash
export RENARD_ENV_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
}
_check_in_wrapper () {
if [ -n "$RENARD_IN_WRAPPER" ]; then
# already calculated
return
fi
_check_source_env_script_dir;
LAST_PART_OF_PATH=$(basename $RENARD_ENV_SCRIPT_DIR)
DIR_ABOVE_ENV_SCRIPT_DIR=$(cd $RENARD_ENV_SCRIPT_DIR/.. && pwd)
if [ $(basename $DIR_ABOVE_ENV_SCRIPT_DIR) = $LAST_PART_OF_PATH ]; then
export RENARD_IN_WRAPPER=1
else
export RENARD_IN_WRAPPER=0
fi
}
_check_directory_with_all_repos () {
if [ -n "$RENARD_ALL_REPO_DIR" ]; then
# already calculated
return
fi
_check_in_wrapper;
if [ 1 == "$RENARD_IN_WRAPPER" ]; then
# We are in the wrapper
export RENARD_ALL_REPO_DIR=$( cd $RENARD_ENV_SCRIPT_DIR/../.. && pwd )
else
export RENARD_ALL_REPO_DIR=$( cd $RENARD_ENV_SCRIPT_DIR/.. && pwd )
fi
}
_check_if_being_sourced () {
if [[ "${BASH_SOURCE[0]}" != "${0}" ]]; then
echo "Sourcing ${BASH_SOURCE[0]}"
else
cat <<USAGE
You must source the script:
. ${0}
USAGE
exit 1
fi
}
## renard_run_cover_on_branch
##
## Syntax
##
## renard_run_cover_on_branch [branch] [command]
##
## Example
##
## renard_run_cover_on_branch master
##
## renard_run_cover_on_branch feat/foo
##
## Runs the tests using prove on a given branch
## (or the current branch if none is given).
##
## Requires: Devel::Cover
##
## cpanm Devel::Cover
##
## Recommends: Pod::Coverage
##
## cpanm Pod::Coverage
renard_run_cover_on_branch () {
_check_in_wrapper;
BRANCH=$(_renard_get_branch "$1")
COVER_DIR=$(_renard_get_cover_dir $BRANCH);
FILE="$2";
if [ -z "$FILE" ]; then
# set branch to the name of the current branch
FILE="t" # xt
fi
if [ -z "$DEVEL_COVER_SILENT" ]; then
DEVEL_COVER_SILENT=1
fi
(
export HARNESS_PERL_SWITCHES="${HARNESS_PERL_SWITCHES}${HARNESS_PERL_SWITCHES:+ }""-MDevel::Cover=-db,$COVER_DIR,+ignore,^x?t/,-silent,$DEVEL_COVER_SILENT"
export PERL5LIB="${PERL5LIB}${PERL5LIB:+:}""$RENARD_SCRIPT_BASE/general";
export HARNESS_PERL_SWITCHES="${HARNESS_PERL_SWITCHES}${HARNESS_PERL_SWITCHES:+ }""-MDeparseDumper";
git co $BRANCH
cover $COVER_DIR -delete
prove -lvr $FILE
cover $COVER_DIR -report html #+ignore '^x?t/'
cover $COVER_DIR -report vim #+ignore '^x?t/'
#see $COVER_DIR/coverage.html
)
}
## renard_run_cover_on_branch_dzil
##
## The same as renard_run_cover_on_branch, except using `dzil test` to run
## the test harness.
renard_run_cover_on_branch_dzil () {
_check_in_wrapper;
BRANCH=$(_renard_get_branch "$1")
COVER_DIR=$(_renard_get_cover_dir $BRANCH);
(
export HARNESS_PERL_SWITCHES="${HARNESS_PERL_SWITCHES}${HARNESS_PERL_SWITCHES:+ }""-MDevel::Cover=-db,$COVER_DIR,+ignore,^x?t/"
export PERL5LIB="${PERL5LIB}${PERL5LIB:+:}""$RENARD_SCRIPT_BASE/general";
export HARNESS_PERL_SWITCHES="${HARNESS_PERL_SWITCHES}${HARNESS_PERL_SWITCHES:+ }""-MDeparseDumper";
git co $BRANCH
cover $COVER_DIR -delete
dzil test --all --keep
( cd .build/latest && cover $COVER_DIR )
#see $COVER_DIR/coverage.html
)
}
_renard_get_branch() {
BRANCH="$1";
if [ -z "$BRANCH" ]; then
# set branch to the name of the current branch
BRANCH=`_renard_get_current_branch`
fi
echo $BRANCH
}
_renard_get_current_branch () {
git rev-parse --abbrev-ref HEAD
}
_renard_get_cover_dir () {
_check_in_wrapper;
BRANCH=$(_renard_get_branch "$1")
COVER_DIR="cover_db/$BRANCH"
if [ 1 == "$RENARD_IN_WRAPPER" ]; then
# move to directory above
COVER_DIR="../$COVER_DIR"
fi
mkdir -p "$COVER_DIR"
COVER_DIR=$(cd $COVER_DIR && pwd)
echo $COVER_DIR
}
main;