##############################################################################
echo '--> info-file-validate.sh'
set -e -o pipefail
-set -x # Enable trace
+PROJECT="${PROJECT:-None}"
virtualenv --quiet "/tmp/v/info"
# shellcheck source=/tmp/v/info/bin/activate disable=SC1091
source "/tmp/v/info/bin/activate"
-pip install PyYAML jsonschema rfc3987
+pip install PyYAML jsonschema rfc3987 yamllint yq
-# Cloning global-jjb to get access to needed scripts
-git clone https://github.com/lfit/releng-global-jjb.git
+# Download info-schema.yaml and yaml-verfy-schema.py
+wget -q https://raw.githubusercontent.com/lfit/releng-global-jjb/master/schema/info-schema.yaml \
+https://raw.githubusercontent.com/lfit/releng-global-jjb/master/yaml-verify-schema.py
-python releng-global-jjb/yaml-verify-schema.py \
- -s releng-global-jjb/info-schema \
+yamllint INFO.yaml
+
+python yaml-verify-schema.py \
+ -s info-schema.yaml \
-y INFO.yaml
-rm -rf releng-global-jjb
+
+# Verfiy that there is only one repository and that it matches $PROJECT
+REPO_LIST="$(yq -r '.repositories[]' INFO.yaml)"
+
+while IFS= read -r project; do
+ if [[ "$project" == "$PROJECT" ]]; then
+ echo "$project is valid"
+ else
+ echo "ERROR: $project is invalid"
+ echo "INFO.yaml file may only list one repository"
+ echo "Repository must match $PROJECT"
+ exit 1
+ fi
+done <<< "$REPO_LIST"