[devel] Q: at@ robots

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Май 12 22:52:26 MSD 2006


On Wed, May 10, 2006 at 01:14:38PM +0400, Konstantin A. Lepikhov wrote:
> Не так давно на какой-то из машин в офисе обитал робот, который
> периодически лазил по CPAN и спамил мантейнеров соотвествующих перловых
> модулей о выходе новых версий. Потом что-то этот робот затих. Он умер, или
> на него/про него забили/забыли? :)

Он работает, шлёт письма мне.  Могу перестроить его на cybertalk.
В принципе можно его запустить и посмотреть.  Что не нравится что если
какой-либо перловый пакет с анметом тогда весь робот вываливается.  Не
знаю что с этим можно придумать.
----------- следующая часть -----------
#!/bin/sh -ef

hshdir="${1:-$TMPDIR/build}"
mkdir -p "$hshdir"

cd "${workdir:?}"

. trap.sh
hsh -q --no-stuff --initroot-only "$hshdir"
add_trap hsh -q --cleanup-only "$hshdir"

conflicts='perl-Geo-IPfree
perl-Module-Signature
perl-SOAP-Lite-examples
perl-SOAP-Lite
perl-Spreadsheet-WriteExcel'

# install all perl packages
"$hshdir"/aptbox/apt-cache -q --no-all-names pkgnames perl |
	grep -Fx -v "$conflicts" |
	xargs hsh-install -q -- "$hshdir" >/dev/null

# query CPAN database
hsh-run -q -- "$hshdir" perl -MCPAN -e 'CPAN::Shell->r' >cpan.out <<EOF
no, not ready for manual configuration
EOF

# fix CPAN output
sed '1,/^Package namespace/d;/installed modules have/,$d' cpan.out >modules

# list packages that need updating
while read -r mod v0 v1 dist; do
	dep="${mod//:://}"; dep="perl($dep.pm)"
	pkg="$(hsh-run -q -- "$hshdir" rpm -q --whatprovides --qf '%{NAME}\n' "$dep")"
	pkg="$(echo "$pkg" |head -1)"
	who="$(hsh-run -q -- "$hshdir" rpm -q --whatprovides --qf '%{PACKAGER}\n' "$dep")"
	who="$(echo "$who" |head -1)"
	who="${who// at /@}"; who="${who// dot /.}"
	dist="${dist##*/}"
	printf "%s\t%s\t%s\t%s\t%s\t%s\n" "$pkg" "$mod" "$v0" "$v1" "$dist" "$who"
done <modules

cd - >/dev/null

# group by packager
xfmt1()
{
	sort -t$'\t' +5 |awk -F'\t' 'who != $6 { who = $6; printf "\n%s:\n", who; }
		{ printf "%-16s\t%s\t%s\t%s\t%s\n", $1, $2, $3, $4, $5; }'
}

fmt_plus()
{
	subj="$subj +$1"
	echo "	$1 NEW $2 added to the list"
	xfmt1; echo
}

fmt_minus()
{
	subj="$subj -$1"
	echo "	$1 $2 REMOVED from the list"
	xfmt1; echo
}

fmt_total()
{
	subj="$subj ($1)"
	echo "	Total $1 $2 need updating"
	xfmt1; echo
}
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : trap.sh
Тип     : application/x-sh
Размер  : 923 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060512/4a2caf2f/attachment-0001.sh>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060512/4a2caf2f/attachment-0001.bin>


Подробная информация о списке рассылки Devel