File: pipelint

package info (click to toggle)
python-jenkinsapi 0.3.17-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,500 kB
  • sloc: python: 10,001; xml: 50; makefile: 31; sh: 26
file content (22 lines) | stat: -rwxr-xr-x 863 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
set -eo pipefail

INPUT=/dev/stdin
if [ -t 0 ]; then
    if [ "$#" -ne 1 ]; then
        echo "ERROR: Illegal number of parameters."
        echo "INFO:  Use 'pipefail Jenkinsfile' or 'cat Jenkinsfile | pipefail'"
        exit 1
    fi
    INPUT=$1
fi
# put credentials inside ~/.netrc
# define JENKINS_URL in your user profile
JENKINS_URL=${JENKINS_URL:-http://localhost:8080}

# failure to get crumb is ignored as this may be diabled on the server side
CRUMB="-H `curl -nfs "$JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)"`" || CRUMB=''

# The tee+grep trick assures that the exit code is 0 only if the server replied with "successfully validated"
curl -nfs -X POST $CRUMB -F "jenkinsfile=<-" $JENKINS_URL/pipeline-model-converter/validate <$INPUT \
  | tee >(cat 1>&2) | grep 'successfully validated' >/dev/null