1
+ #! /bin/bash
2
+
3
+ base_path=$( dirname $0 ) /..
4
+ samples_file=${base_path} /extraDevfileEntries.yaml
5
+ # Cached remote samples directory
6
+ samples_dir=${base_path} /samples/.cache
7
+
8
+ # Clones remote samples into cache directory
9
+ clone_samples () {
10
+ samples_len=$( yq eval ' .samples | length' ${samples_file} )
11
+
12
+ # Removes old cached samples directory
13
+ if [ -d ${samples_dir} ]; then
14
+ rm -rf ${samples_dir}
15
+ fi
16
+
17
+ for (( idx= 0 ;idx< ${samples_len} ;idx++ )) ; do
18
+ name=$( yq eval .samples.${idx} .name ${samples_file} )
19
+ remote_url=$( yq eval .samples.${idx} .git.remotes.origin ${samples_file} )
20
+
21
+ git clone --depth=1 ${remote_url} ${samples_dir} /${name}
22
+ done
23
+ }
24
+
25
+ # Builds sample parent dependency file
26
+ build_parents () {
27
+ samples_len=$( yq eval ' .samples | length' ${samples_file} )
28
+
29
+ if [ -f parents.yaml ]; then
30
+ rm parents.yaml
31
+ fi
32
+
33
+ for (( idx= 0 ;idx< ${samples_len} ;idx++ )) ; do
34
+ name=$( yq eval .samples.${idx} .name ${samples_file} )
35
+ devfile=${samples_dir} /${name} /devfile.yaml
36
+ parent=$( yq eval .parent.id ${devfile} )
37
+
38
+ if [ " ${parent} " != " null" ]; then
39
+ if [ -f parents.yaml ] && [ " $( yq eval .parents.${parent} .children parents.yaml) " != " null" ]; then
40
+ next_idx=$( yq eval " .parents.${parent} .children | length" parents.yaml)
41
+ yq eval " .parents.${parent} .children[${next_idx} ] = \" ${name} \" " -i parents.yaml
42
+ elif [ -f parents.yaml ]; then
43
+ yq eval " .parents.${parent} .children[0] = \" ${name} \" " -i parents.yaml
44
+ else
45
+ yq eval -n " .parents.${parent} .children[0] = \" ${name} \" " > parents.yaml
46
+ fi
47
+ fi
48
+ done
49
+ }
50
+
51
+ clone_samples
52
+
53
+ build_parents
0 commit comments