#!/bin/sh # This script do the following : # Use jenkins-cli.jar # Verify if an update is available for Jenkins plugins. # Create a file you need to monitore. # # How-to use it ? # Run it with `jenkins_check_update # Add a symlink to /etc/cron.daily # ln -s $(pwd)/jenkins_check_update /etc/cron.daily/ JENKINS_HOME="/var/lib/jenkins" JENKINS_CLI_JAR="${JENKINS_HOME}/war/WEB-INF/jenkins-cli.jar" JENKINS_AUTH_FILE="/root/.jenkins.auth" JENKINS_PLUGIN_UPDATE_LOG="${JENKINS_HOME}/.update_plugin" if [ ! -f "${JENKINS_CLI_JAR}" ]; then printf '%b\n' "Jenkins-cli (${JENKINS_CLI_JAR}) does not seem to be available." exit 1 fi if [ ! -f "${JENKINS_AUTH_FILE}" ]; then printf '%b\n' "Jenkins authentication file (${JENKINS_AUTH_FILE}) does not seem to be available." exit 1 fi cd "$(dirname ${JENKINS_AUTH_FILE})" || exit # Verify if updates are availables for plugins if java -jar "${JENKINS_CLI_JAR}" -s http://127.0.0.1:8080 -auth @.jenkins.auth list-plugins | grep --ignore-case --quiet -- "(.*)$" then touch "${JENKINS_PLUGIN_UPDATE_LOG}" #printf '%b\n' "Please upgrade plugins" else rm --force -- "${JENKINS_PLUGIN_UPDATE_LOG}" #printf '%b\n' "Nothing to do" fi cd - > /dev/null || exit exit 0