outdated.sh (1247B)
1 #!/bin/sh 2 3 fetchversion() { 4 curl -s -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" https://repology.org/badge/latest-versions/$1.svg \ 5 | sed 's/, /,/g' \ 6 | tr ' ' '\n' \ 7 | grep -Eo 'central">.*<' \ 8 | sed 's/<.*//;s/.*>//' \ 9 | tr ',' '\n' \ 10 | tail -n1 11 } 12 13 while [ "$1" ]; do 14 unset curver port 15 [ -f $1/abuild ] && port=${1%/} 16 [ "$port" ] || { shift; continue; } 17 name=${1#*/}; name=${name%/} 18 curver=$(grep ^version= $port/abuild | awk -F = '{print $2}') 19 [ "$curver" ] || { shift; continue; } 20 case $name in 21 python-*) name=python:${name#python-};; 22 perl-*) name=perl:${name#perl-};; 23 esac 24 # clear newver function 25 unset -f newver 26 if [ -s $port/outdated ]; then 27 . $port/outdated 28 fi 29 printf " checking $1\033[0K\r" 30 newver=$(fetchversion $name) 31 if [ "$(command -v newver)" ]; then 32 newver 33 fi 34 touch outdate.error outdate.list 35 sed "\|^$port .*|d" -i outdate.error 36 sed "\|^$port .*|d" -i outdate.list 37 if [ ! "$newver" ] || [ "$newver" = '-' ]; then 38 echo "$port $curver" >> outdate.error 39 elif [ "$curver" != "$newver" ]; then 40 echo "$port $newver ($curver)" 41 echo "$port $newver ($curver)" >> outdate.list 42 fi 43 shift 44 done 45 printf "\033[0K"