63 lines
1.7 KiB
Bash
Executable File
63 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
|
|
|
shopt -s nullglob || exit 1
|
|
|
|
prog=`basename $0 .bash`
|
|
ROLE=base
|
|
export PATH=/sbin:$PATH
|
|
|
|
PREFIX=/usr/local
|
|
. /usr/local/bin/usr_local_tput.bash || exit 2
|
|
|
|
DEST=$PREFIX/portage/testforge/sec-keys
|
|
FROM=/usr/portage/sec-keys
|
|
|
|
cd /
|
|
grep /~sam/ /usr/portage/sec-keys/*/*d| \
|
|
sed -e 's@.*/@@' -e 's/"//' -e 's/.*-//'|grep -v P | \
|
|
while read f;do
|
|
b=`ls /usr/portage/distfiles/*"$f"`|| continue;
|
|
a=`readlink "$b"`;
|
|
echo $a;[ -h "$a" ] && continue;
|
|
echo $b;
|
|
done | \
|
|
sed -e 's@\.\./\.\.@/i@'|zip -m9 --symlinks sam.zip -@
|
|
|
|
cd $FROM
|
|
#
|
|
tar cf - *-* | tar xf - --keep-newer-files -C $DEST 2>/dev/null >/dev/null
|
|
|
|
[ -d $DEST ] || mkdir -p $DEST
|
|
cd $FROM
|
|
i=0
|
|
for dir in *-*; do
|
|
[ -d $dir ] || continue
|
|
[ -d $DEST/$dir ] || mkdir $DEST/$dir
|
|
ls $dir/*ebuild >/dev/null 2>/dev/null || { WARN no *ebuild in $dir ; continue ; }
|
|
for file in $dir/*ebuild ; do
|
|
[ -f $DEST/$file ] && [ $DEST/$file -nt $FROM/$file ] && continue
|
|
sed -e 's/^LICENSE=/RESTRICT="mirror"\nLICENSE=/' > $DEST/$file < $FROM/$file
|
|
if grep -q 'Mirrored from ' $FROM/$file ; then
|
|
url="`grep 'Mirrored from ' $FROM/$file|sed -e 's/.*Mirrored from //' -e 's/ .*//'`"
|
|
if [ -n "$url" ] ; then
|
|
i=`expr $i + 1`
|
|
rep=`sed -e 's/[$]/\\\\$/g' -e 's/[&]/\\\\&/g' <<< $url`
|
|
# could change some keyservers here
|
|
rep=`sed -e 's/http:/https:/' <<< $rep`
|
|
DBUG rep="$rep"
|
|
sed -e "s@https://dev.gentoo.org/.sam/[^ \"]*@$rep@" \
|
|
-i $DEST/$file
|
|
fi
|
|
fi
|
|
cd $DEST/$dir
|
|
for dfile in $dir/*ebuild ; do
|
|
ddir=`dirname $dfile`
|
|
cd $ddir
|
|
ebuild manifest *ebuild
|
|
done
|
|
cd $DEST
|
|
done
|
|
done
|
|
INFO $i $DEST
|