[devel] girar-utils
Afanasov Dmitry
ender на altlinux.org
Ср Май 27 18:13:47 MSD 2009
забыл тему сменить, каюсь.
On Wed, May 27, 2009 at 05:54:53PM +0400, Afanasov Dmitry wrote:
> On Wed, May 27, 2009 at 05:27:58PM +0400, Alexey I. Froloff wrote:
> > Есть пакет girar-utils, в репозитарий которого я слегка пописываю.
> > Как должен выглядеть этот girar-get, какие опции принимать и что
> > выдавать на выходе?
> а так мне очень интересен расширенный функционал git.alt find-packages. на входе
> опять-таки имеем rpm пакет, на выходе список ссылок, откуда этот пакет
> вырос.
>
> то есть задача: разыменовать бинарный пакет в srpm, по srpm вычислить
> таг/коммит, найти репы с этим коммитом на git.alt'е.
а что если туда же добавить скритину в аттаче? простая как пробка, не
такая оптимальная/быстрая, но работает :) сделана для подстановки в rules
не только version, release и name, но и любых другиз макросов rpm
--
С уважением
Афанасов Дмитрий
----------- следующая часть -----------
#!/bin/bash
fatal()
{
[ -z "$1" ] && echo "$@"
exit 1
}
while :; do
case $1 in
--debug)
set -x
;;
--spec)
shift
SPEC=$1
;;
*)
[ -z "$1" ] && break
;;
esac
shift
done
rules=
rules_in=
[ -f .gear/rules.in ] && rules_in=".gear/rules.in"
[ -f .gear-rules ] && rules_in=".gear-rules.in"
[ -f "$rules_in" ] || exit
rules="${rules_in%*.in}"
[ -z "$SPEC" ] && SPEC=`ls *.spec 2>/dev/null`
[ -f "$SPEC" ] || fatal "spec $SPEC not found"
vars="$(awk '
{
line = $0;
while(match(line, /@([a-z]+)@/, f))
{
if(!x[f[1]])
{
print f[1];
x[f[1]] = 1;
}
line = substr(line, RSTART + RLENGTH)
}
}' $rules_in)"
tmpspec=`mktemp --tmpdir spec-XXXXX`
trap "rm -f $tmpspec" INT TERM
install -p -m644 "$rules_in" "$rules" || fatal
for var in $vars; do
cat $SPEC > $tmpspec
echo "%$var" >> $tmpspec
val="$(rpm -bE $tmpspec | tail -1)"
[ -z "$val" ] && fatal "$var not expanded"
echo "substitute $var --> $val"
perl -i -npe "s/\@\Q$var\E@/$val/g" $rules
done
rm -f $tmpspec
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 198 байтов
Описание: Digital signature
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20090527/0c08e04f/attachment.bin>
Подробная информация о списке рассылки Devel