fix macros that needed indent, add Jenkinsfile lint tool

Change-Id: Ifad9ff9b8b5e4099cc1ea3d61e18d279002aa974
diff --git a/jjb/shell/jflint.sh b/jjb/shell/jflint.sh
new file mode 100755
index 0000000..8ece6b7
--- /dev/null
+++ b/jjb/shell/jflint.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+# jflint.sh - lint for Jenkins declarative pipeline jobs
+#
+# curl commands from: https://jenkins.io/doc/book/pipeline/development/#linter
+
+set -e -u -o pipefail
+
+JENKINS_URL=https://jenkins-new.opencord.org/
+JF_LIST=()
+
+# if no args, and there's a Jenkinsfile in cwd, check it
+if [ ! -n "$1" ] && [ -f "Jenkinsfile" ] ; then
+  JF_LIST+=("Jenkinsfile")
+else
+# iterate over all args, check if they exist, then add to list of jenkinsfiles to check
+  for arg in "$@"; do
+    if [ -f "$arg" ]; then
+      JF_LIST+=($arg)
+    else
+      echo "File does not exist: ${arg}"
+      exit 1;
+    fi
+  done
+fi
+
+# JENKINS_CRUMB is needed if your Jenkins master has CRSF protection enabled as it should
+JENKINS_CRUMB=$(curl "$JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)")
+
+for target in "${JF_LIST[@]-}"; do
+  echo "Checking '${target}'"
+  curl -X POST -H "${JENKINS_CRUMB}" -F "jenkinsfile=<${target}" $JENKINS_URL/pipeline-model-converter/validate
+done
+