2006年08月14日(月)


INDEX for ports III

PC : 日が経つのが早いような気がします。

--- showversionindex.sh 10 Aug 2006 00:13:39 -0000      1.1
+++ showversionindex.sh 13 Aug 2006 23:17:21 -0000      1.2
@@ -1,18 +1,38 @@
-#!/bin/sh
+!/bin/sh
+# $Id: showversionindex.sh,v 1.2 2006/08/13 23:17:21 xxxx Exp $

 export LANG="C"
-export PORTSDB="/usr/local/bin/portsdb"
+export PORTS_DIR="/usr/ports"
+export PORTSDB="/usr/local/sbin/portsdb"
 export PORTSDB_FLAGS=""
-export PORTVERSION="/usr/local/bin/portversion"
-export PORTVERSION_FLAGS="-vL="
+export PORTVERSION="/usr/local/sbin/portversion"
+export PORTVERSION_FLAGS="-L="
+export TAR_URL='http://www.freebsd.org/cgi/cvsweb.cgi/ports/%TARGET%/%FN%.tar.gz?tarball=1'

-if [ -x "$PORTVERSION" ] ; then
+if [ -x "$PORTSDB" -a -x "$PORTVERSION" ] ; then
     "$PORTSDB" ${PORTSDB_FLAGS} 2>&1 > /dev/null
     PORTS_NEEDS_UPDATE=`"$PORTVERSION" ${PORTVERSION_FLAGS} | awk '{ print $1 }'`
-    for EACH_PORTS in $PORTS_NEEDS_UPDATE
-    do
-        grep "^$EACH_PORTS" /usr/ports/INDEX \
-        | sed 's/\|/ /g' \
-        | awk '{ print $2 }'`
-    done
+
+    if [ "x${PORTS_NEEDS_UPDATE}" != "x" ] ; then
+        for EACH_PORTS in $PORTS_NEEDS_UPDATE
+        do
+            TARGET=`grep "^$EACH_PORTS" "${PORTS_DIR}/INDEX" \
+                    | sed 's/\|/ /g' \
+                    | awk '{ print $2 }'`
+
+            if [ "x${TARGET}" != "x" ] ; then
+                TARGET=`echo "${TARGET}" | sed 's/${PORTS_DIR}\//g'`
+
+                for p in ${TARGET}
+                do
+                    FN=`basename "${p}"`
+                    TAR_URL=`echo "$TAR_URL" | sed "s/%TARGET%/${p}/"`
+                    TAR_URL=`echo "$TAR_URL" | sed "s/%FN%/${FN}/"`
+
+                    fetch "$TAR_URL" 2>&1 > /dev/null \
+                    || echo "Can't fetch ${TARGET}" >&2
+                done
+            fi
+        done
+    fi
 fi

長いので、びっくりです。 この日記で、ファイルへのリンクを作る流儀が分からないので、いつも直貼りです。



generated by makediary-2.11