[devel] gear - сборка пакетов

Alexey I. Froloff =?iso-8859-1?q?raorn_=CE=C1_immo=2Eru?=
Пт Май 5 00:49:10 MSD 2006


* Anton Farygin <rider@> [060504 21:49]:
> С созданием всех каталогов в текущем каталоге git'а (ну или
> настраиваемо).
Я написал чудной кривизны "враппер" для rpm - подставляет нужный
.rpmmacros в зависимости от текущего каталога.

$ cat ~/.rpmwraprc
RPM_PREFIX="/usr/bin"
RPM="$RPM_PREFIX/rpm"
macrofile=".rpmwrapmacros"
allow_prefix="$HOME/src/BTE:$HOME/src/gitsnaps/packages"

$ cat ~/src/gitsnaps/packages/.rpmwrapmacros
%_topdir        %homedir/src/gitsnaps/packages
%_topsrcdir     %{_topdir}/%{name}
%_builddir      %{_topdir}/%{name}/work
%_sourcedir     %{_topsrcdir}/files
%_specdir       %{_topsrcdir}

$ cat ~/src/BTE/.rpmwrapmacros
%_topdir        %homedir/src/BTE/RPM
%_topsrcdir     %{_topdir}/%{name}
%_builddir      %{_topdir}/%{name}/work
%_sourcedir     %{_topsrcdir}/files
%_specdir       %{_topsrcdir}

$ ls -Alog ~/bin/rpm* 
lrwxrwxrwx 1   10 May  1 14:47 ~/bin/rpm -> rpmwrapper
lrwxrwxrwx 1   10 May  1 14:47 ~/bin/rpmbuild -> rpmwrapper
-rwxr-xr-x 1 1038 May  5 00:42 ~/bin/rpmwrapper

Думаю, принцип понятен?  Критика приветствуется.

-- 
Regards,
Sir Raorn.
----------- следующая часть -----------
#!/bin/sh -efu

PROG="${0##*/}"

etc="/etc/rpm"

[ "$0" = "./$PROG" ] && etc="." ||:
[ -f $etc/rpmwraprc ] && . $etc/rpmwraprc ||:
[ -f ~/.rpmwraprc ] && . ~/.rpmwraprc ||:

: ${RPM_PREFIX:="/usr/bin"}
: ${RPM:="$RPM_PREFIX/rpm"}
: ${macrofile:=".rpmwrapmacros"}

cwd="$(pwd)"
prefix=""
args=""

sIFS="$IFS"
IFS=":"
for i in $allow_prefix; do
    case "$cwd" in
	$i/*|$i)
	    [ -f "$i/$macrofile" ] && prefix="$i" ||:
	    ;;
	*)
	    continue
	    ;;
    esac
done
IFS="$sIFS"

rpmrc=
exit_handler()
{
	local rc=$?
	trap - EXIT
	[ -z "$rpmrc" ] || rm -r -- "$rpmrc"
	exit $rc
}

if [ -n "$prefix" ]; then
    rpmrc="$(mktemp -t "$PROG-rpmrc.XXXXXXXX")"
    trap exit_handler HUP PIPE INT QUIT TERM EXIT
    macrofiles="$($RPM --showrc| grep macrofiles)"
    macrofiles="${macrofiles#macrofiles}"
    macrofiles="${macrofiles#*:}"
    args="--rcfile=$rpmrc"
    cat <<EOF > "$rpmrc"
include:	/usr/lib/rpm/rpmrc
macrofiles:	${macrofiles+$macrofiles:}$prefix/$macrofile
EOF
fi
[ -x "$RPM_PREFIX/$PROG" ]  && "$RPM_PREFIX/$PROG" $args "$@"
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060505/7b47e3ca/attachment-0001.bin>


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