mirror of
https://github.com/outbackdingo/ports.git
synced 2026-03-22 03:44:46 +00:00
228 lines
4.3 KiB
Bash
Executable File
228 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
RED='\e[0;31m' #Red
|
|
GREEN='\e[0;32m' #Green
|
|
YELLOW='\e[0;33m' #Yellow
|
|
CRESET='\e[0m' #Reset color
|
|
|
|
getver() {
|
|
$WGETCMD $url \
|
|
| grep -Eo $filename-[0-9.]+.tar.[bgx]z2? \
|
|
| sort -V \
|
|
| uniq \
|
|
| sed "s/$filename-//;s/\.tar.*//"
|
|
}
|
|
|
|
### PER TYPE SECTION
|
|
|
|
getver_github() {
|
|
$WGETCMD $url \
|
|
| grep archive \
|
|
| grep -Eo [0-9.]+\.tar\.gz \
|
|
| sed 's/\.tar\.gz//' \
|
|
| sort -V \
|
|
| uniq
|
|
}
|
|
|
|
getver_gnome() {
|
|
$WGETCMD $url \
|
|
| tr ' ' '\n' \
|
|
| grep -Eo $filename-[0-9.]+.tar.[bgx]z2? \
|
|
| sed "s/$filename-//;s/\.tar.*//" \
|
|
| grep -Ew "^[0-9]+\.[0-9]*[02468]\.*" \
|
|
| grep -Ev "*.[89][0-9].*" \
|
|
| sort -V \
|
|
| uniq
|
|
}
|
|
|
|
getver_xfce4() {
|
|
url=$url/$($WGETCMD $url \
|
|
| grep folder \
|
|
| sed 's,.*href=",,;s,\/.*,,' \
|
|
| sort -V \
|
|
| uniq \
|
|
| tail -n1)
|
|
getver
|
|
}
|
|
|
|
### PER PACKAGE SECTION
|
|
|
|
getver_gcc() {
|
|
$WGETCMD $(dirname $url) \
|
|
| grep -Eo gcc-[0-9.]+ \
|
|
| sed "s/$name-//"
|
|
}
|
|
|
|
getver_github_linux-pam() {
|
|
url=https://github.com/linux-pam/linux-pam/releases
|
|
getver
|
|
}
|
|
|
|
getver_cmake() {
|
|
url=https://cmake.org/download/
|
|
getver
|
|
}
|
|
|
|
getver_cryptsetup() {
|
|
url=https://gitlab.com/cryptsetup/cryptsetup/-/tags
|
|
getver_github
|
|
}
|
|
|
|
getver_ntp() {
|
|
url=$(dirname $url)/$($WGETCMD $(dirname $url) \
|
|
| grep folder \
|
|
| sed 's,.*href=",,;s,\/.*,,' \
|
|
| grep -v dev \
|
|
| sort -V \
|
|
| uniq \
|
|
| tail -n1)
|
|
getver
|
|
}
|
|
|
|
getver_xterm() {
|
|
$WGETCMD $url \
|
|
| grep -Eo $filename-[0-9.]+.tgz \
|
|
| sort -V \
|
|
| uniq \
|
|
| sed "s/$filename-//;s/\.tgz//"
|
|
}
|
|
|
|
getver_boost() {
|
|
$WGETCMD https://www.boost.org/users/download/ \
|
|
| tr '_' '.' \
|
|
| grep -Eo boost\.[0-9.]+.tar.bz2 \
|
|
| sed 's/boost\.//;s/\.tar.*//' \
|
|
| sort -V \
|
|
| uniq
|
|
}
|
|
|
|
### MAIN SECTION
|
|
|
|
run_check() {
|
|
if [ "$(type -t ${1}_$name)" = "function" ]; then
|
|
checkver_cmd=${1}_$name
|
|
else
|
|
checkver_cmd=${1}
|
|
fi
|
|
|
|
if [ "$VERBOSE" = 1 ]; then
|
|
$checkver_cmd
|
|
return
|
|
else
|
|
upver=$($checkver_cmd | tail -n1)
|
|
fi
|
|
|
|
upver=${upver:-404}
|
|
|
|
if [ "$upver" = "404" ]; then
|
|
echo -e "$ppath: $version => ${RED}404${CRESET}"
|
|
[ "$OUT" = 1 ] && echo "$ppath $version => 404" >> error
|
|
elif [ "$version" != "$upver" ]; then
|
|
echo -e "$ppath: $version => ${YELLOW}$upver${CRESET}"
|
|
[ "$OUT" = 1 ] && echo "$ppath $version => $upver" >> outdate
|
|
else
|
|
echo -e "$ppath: $upver = ${GREEN}OK${CRESET}"
|
|
fi
|
|
}
|
|
|
|
check() {
|
|
ppath=$1
|
|
|
|
if [ -f $ppath/spkgbuild ]; then
|
|
source $ppath/spkgbuild
|
|
else
|
|
return
|
|
fi
|
|
|
|
if [ ${#source[@]} = 0 ]; then
|
|
return
|
|
fi
|
|
|
|
file=$(basename ${source[0]})
|
|
ext=$(echo $FILE | sed 's/.*\(\.t.*\).*/\1/')
|
|
filename=$(basename $file)
|
|
filename=${filename%-*}
|
|
|
|
if [ $(echo ${source[0]} | grep "::") ]; then
|
|
url=$(echo ${source[0]} | awk -F '::' '{print $2}')
|
|
url=$(dirname $url)/
|
|
else
|
|
url=$(dirname ${source[0]})/
|
|
fi
|
|
|
|
case $url in
|
|
*github.com*)
|
|
url=https://github.com/$(echo $url | cut -d / -f4,5)/tags
|
|
run_check getver_github;;
|
|
*downloads.sourceforge.net*)
|
|
url="https://sourceforge.net/projects/$(echo $url | cut -d / -f4)/rss?limit=200"
|
|
run_check getver;;
|
|
*sourceforge.net*)
|
|
url="https://sourceforge.net/projects/$(echo $url | cut -d / -f5)/rss?limit=200"
|
|
run_check getver;;
|
|
*gitlab.com*)
|
|
url=$(echo $url | cut -d/ -f1-5)/tags
|
|
run_check getver;;
|
|
*python.org*|*pypi.org*|*pythonhosted.org*|*pypi.io*)
|
|
url=https://pypi.org/simple/${name/python?-/}
|
|
run_check getver;;
|
|
*rubygems.org*)
|
|
url=https://rubygems.org/gems/${name/ruby-/}
|
|
run_check getver;;
|
|
*launchpad.net*)
|
|
url=https://launchpad.net/$(echo $url | cut -d / -f4)/+download
|
|
run_check getver;;
|
|
*ftp.gnome.org*)
|
|
url=https://ftp.gnome.org/pub/gnome/sources/$filename/cache.json
|
|
run_check getver_gnome;;
|
|
*archive.xfce.org*)
|
|
url=http://archive.xfce.org/src/$(echo $url | cut -d / -f5)/$name/
|
|
run_check getver_xfce4;;
|
|
*)
|
|
run_check getver;;
|
|
esac
|
|
unset name version source
|
|
}
|
|
|
|
parseopt() {
|
|
while [ $1 ]; do
|
|
case $1 in
|
|
-r) REPO=$2
|
|
shift;;
|
|
-o) OUT=1;;
|
|
-v) VERBOSE=1;;
|
|
*) PKG+=($1);;
|
|
esac
|
|
shift
|
|
done
|
|
}
|
|
|
|
main() {
|
|
parseopt $@
|
|
|
|
if [ "$REPO" ]; then
|
|
if [ -d "$REPO" ]; then
|
|
for d in $REPO/*/spkgbuild; do
|
|
check $(dirname $d)
|
|
done
|
|
else
|
|
echo "Repo '$REPO' not exist"
|
|
return 1
|
|
fi
|
|
elif [ ${#PKG[@]} -gt 0 ]; then
|
|
for p in ${PKG[@]}; do
|
|
check $(find . -maxdepth 2 -mindepth 2 -name $p -printf "%P\n" | head -n1)
|
|
done
|
|
else
|
|
for d in */*/spkgbuild; do
|
|
check $(dirname $d)
|
|
done
|
|
fi
|
|
}
|
|
|
|
WGETCMD="wget -qO - -t 3 -T 10"
|
|
|
|
main $@
|
|
|
|
exit 0
|