Fix OS_CLOUD export for image validation
[releng/global-jjb.git] / shell / info-file-validate.sh
index 13c27df..4b80672 100755 (executable)
 ##############################################################################
 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 yamllint
+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
 
 yamllint INFO.yaml
 
-python releng-global-jjb/yaml-verify-schema.py \
-    -s releng-global-jjb/info-schema \
+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"