diff options
author | sobomax <sobomax@FreeBSD.org> | 2000-07-07 23:00:38 +0800 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2000-07-07 23:00:38 +0800 |
commit | 11c61657bb61ab6028cf8eecec6848a0b0056091 (patch) | |
tree | ea51895ebb22635597fcd81f4a02b7f90c54a385 /Tools/scripts/checknewver.sh | |
parent | e93cffbb8ca6172b4ec2ac4d7d1b24fddfb3aaad (diff) | |
download | freebsd-ports-gnome-11c61657bb61ab6028cf8eecec6848a0b0056091.tar.gz freebsd-ports-gnome-11c61657bb61ab6028cf8eecec6848a0b0056091.tar.zst freebsd-ports-gnome-11c61657bb61ab6028cf8eecec6848a0b0056091.zip |
Add checknewver.sh - a shell script which checks for availability of newest
version of distfiles on MASTER_SITES. This is still work in progress, so
please use with caution and don't forget report bugs and submit patches.
Diffstat (limited to 'Tools/scripts/checknewver.sh')
-rwxr-xr-x | Tools/scripts/checknewver.sh | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/Tools/scripts/checknewver.sh b/Tools/scripts/checknewver.sh new file mode 100755 index 000000000000..e6d061b83d22 --- /dev/null +++ b/Tools/scripts/checknewver.sh @@ -0,0 +1,85 @@ +#!/bin/sh +# +# checknewver +# Check for availability of the newest distfiles +# +# ---------------------------------------------------------------------------- +# "THE BEER-WARE LICENSE" (Revision 42, (c) Poul-Henning Kamp): +# Maxim Sobolev <sobomax@altavista.net wrote this file. As long as you retain +# this notice you can do whatever you want with this stuff. If we meet some +# day, and you think this stuff is worth it, you can buy me a beer in return. +# +# Maxim Sobolev +# ---------------------------------------------------------------------------- +# +# $FreeBSD$ +# +# MAINTAINER= sobomax@FreeBSD.org + +if [ x`which ftpls` = x"" ]; then + echo -n "ERROR: Couldn't find ftpls program, which is part of " >&2 + echo "ports/ftp/ftpcopy port." >&2 + echo " Please make sure that it is installed and try again." >&2 + exit 1 +fi + +if [ ! -e Makefile ]; then + echo "ERROR: Couldn't find Makefile here." >&2 + exit 1 +fi + +PORTNAME=`make -V PORTNAME` +PORTVERSION=`make -V PORTVERSION` +DISTFILES=`make -V DISTFILES` +if [ x"${PORTNAME}" = x"" -o x"${PORTVERSION}" = x"" -o x"${DISTFILES}" = x"" ]; then + echo "ERROR: either PORTNAME, PORTVERSION or DISTFILES is undefined in Makefile." >&2 + exit 1 +fi + +MASTER_SITES=`env MASTER_SITE_BACKUP=\"\" make -V MASTER_SITES | xargs -n1 echo | grep ^ftp://` +if [ x"${MASTER_SITES}" = x"" ]; then + echo "ERROR: either MASTER_SITES is undefined in Makefile or it doesn't contain any ftp sites." >&2 + exit 1 +fi + +echo "Checking for updated version of ${PORTNAME}..." >&2 +PV_PATR=`echo ${PORTVERSION} | sed 's=\.=\\\\.=g'` +for DISTNAME in ${DISTFILES}; do + DF_PATR=`echo ${DISTNAME} | sed "s=${PV_PATR}=.*=" | \ + sed 's=\.=\\\\.=g ; s=\\\.\*=.*='` + DF_CHECK=`echo ${DISTNAME} | sed 's=\.=\\\\.=g` + if [ x"${DF_PATR}" = x"${DF_CHECK}" ]; then + echo "WARN: Couldn't construct searching pattern - ${DISTNAME} ignored." >&2 + else + DF_PATRNS="${DF_PATRNS} ${DF_PATR}" + F_DISTFILES="${F_DISTFILES} ${DISTNAME}" + fi +done + +if [ x"${F_DISTFILES}" = x"" ]; then + echo "WARN: Nothing to check - exitting." >&2 + exit 0 +fi + +DISTFILES="${F_DISTFILES}" + +for MASTER_SITE in ${MASTER_SITES}; do + echo "...checking ${MASTER_SITE}" >&2 + FTPLIST=`ftpls ${MASTER_SITE} 2>/dev/null | grep -v ^dir | awk '{print $6}'` + for DISTNAME in ${DISTFILES}; do + DF_PATR=`echo ${DISTNAME} | sed "s=${PV_PATR}=.*=" | \ + sed 's=\.=\\\\.=g ; s=\\\.\*=.*='` + for i in `echo ${FTPLIST} | xargs -n1 echo | grep "${DF_PATR}"` ; do + if [ "${i}" ">" "${DISTNAME}" ]; then + NEW="${NEW} ${MASTER_SITE}${i}" + fi + done + done +done + +if [ x"${NEW}" != x"" ]; then + echo "" + echo "Hmm, is seems that there is newest version(s) at:" + echo "${NEW}" | xargs -n1 echo + echo "" +fi |