Matching maintainers

Ryan Schmidt ryandesign at macports.org
Mon Dec 6 22:40:36 PST 2010


On Dec 7, 2010, at 00:26, Adam Mercer wrote:

> For checking if there are any updates to the ports I maintain I use
> the following:
> 
> port echo maintainer:ram | xargs -n 1 port livecheck
> 
> however this returns ports that I don't maintain but the maintainer
> field starts with ram, e.g. atf and perforce. How can I match ram as a
> complete string? I've tried ending the match string with $ to signify
> the end, but then this doesn't match any ports where there are two
> maintainers, e.g. openmaintainer.

See:

http://lists.macosforge.org/pipermail/macports-dev/2010-October/013131.html

And:

http://lists.macosforge.org/pipermail/macports-dev/2010-October/013133.html

So you want:


#!/bin/bash

HANDLE=ram

port livecheck '(' \
'maintainer:(\W|^)'$HANDLE'(\W|$)' or \
'maintainer:(\W|^)'$HANDLE'@macports.org(\W|$)' or \
'maintainer:(\W|^)macports.org:'$HANDLE'(\W|$)' ')'


In fact there is a much more fun script that I use -- more fun because it starts several livechecks in parallel, so you're not waiting on slow servers:


#!/bin/bash

HANDLE=ryandesign
JOBS=8

TMPFILE=$(mktemp -t /tmp)

PORTS=$(port echo '(' \
'maintainer:(\W|^)'$HANDLE'(\W|$)' or \
'maintainer:(\W|^)'$HANDLE'@macports.org(\W|$)' or \
'maintainer:(\W|^)macports.org:'$HANDLE'(\W|$)' ')' \
| sed -E 's/ +//g' \
| tr '\n' ' ')

echo "all: $PORTS" > $TMPFILE
echo >> $TMPFILE
echo ".PHONY: $PORTS" >> $TMPFILE

for PORT in $PORTS; do
    echo >> $TMPFILE
    echo "$PORT:" >> $TMPFILE
    echo $'\t'"port livecheck $PORT" >> $TMPFILE
done

make -f $TMPFILE -j $JOBS -s || exit $?

rm -f $TMPFILE





More information about the macports-users mailing list