alicelinux

A lightweight musl + clang/llvm + libressl + busybox distro
git clone https://codeberg.org/emmett1/alicelinux
Log | Files | Refs | README | LICENSE

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"