71 lines
1.4 KiB
Plaintext
71 lines
1.4 KiB
Plaintext
|
#!/bin/bash
|
||
|
# GNU AGPLv3+
|
||
|
# Nagios plugin to check Gitea version
|
||
|
|
||
|
function usage()
|
||
|
{
|
||
|
echo "Usage : $0"
|
||
|
}
|
||
|
|
||
|
|
||
|
function getCurrentVersion
|
||
|
{
|
||
|
local result
|
||
|
|
||
|
local json=$(curl -s -X GET "https://forge.chalec.org/api/v1/version" -H "accept: application/json")
|
||
|
#echo "[$json]"
|
||
|
|
||
|
# {"version":"1.11.1"}
|
||
|
local regexp='\{"version":"(.*)"}'
|
||
|
if [[ $json =~ $regexp ]]; then
|
||
|
result=${BASH_REMATCH[1]}
|
||
|
else
|
||
|
result=
|
||
|
fi
|
||
|
|
||
|
echo "$result"
|
||
|
}
|
||
|
|
||
|
function getLastVersionFromGithub
|
||
|
{
|
||
|
local result
|
||
|
|
||
|
local owner="$1"
|
||
|
local repo="$2"
|
||
|
|
||
|
local json=$(curl -s -X GET https://api.github.com/repos/$owner/$repo/releases/latest |grep tag_name)
|
||
|
#echo "[$json]"
|
||
|
|
||
|
# [ "tag_name": "v1.11.1",]
|
||
|
local regexp='.*"tag_name": "v(.+)".*'
|
||
|
|
||
|
if [[ $json =~ $regexp ]]; then
|
||
|
result=${BASH_REMATCH[1]}
|
||
|
else
|
||
|
result=
|
||
|
fi
|
||
|
|
||
|
echo "$result"
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
if [ "$#" -ne 0 ]; then
|
||
|
usage
|
||
|
else
|
||
|
currentVersion=$(getCurrentVersion)
|
||
|
#echo "Current version = $currentVersion"
|
||
|
|
||
|
lastVersion=$(getLastVersionFromGithub "go-gitea" "gitea")
|
||
|
#echo "Last version = $lastVersion"
|
||
|
|
||
|
if [ $currentVersion = $lastVersion ]; then
|
||
|
echo "OK"
|
||
|
result=0
|
||
|
else
|
||
|
echo "WARNING : new version available, current is $currentVersion, last is $lastVersion."
|
||
|
result=1
|
||
|
fi
|
||
|
fi
|
||
|
exit $result
|