[devel] Re: Sisyphus for developers

Alexey I. Froloff =?iso-8859-1?q?sir=5Fraorn_=CE=C1_immo=2Eru?=
Ср Окт 8 09:28:02 MSD 2003


* Yura Zotov <yz на altlinux.ru> [031007 20:56]:
> Тут на память пришла старая и обкатанная технология "rsync через
> CD". У меня есть самописанные скрипты, которые получают список
> изменений, скачивают эти изменения где-нибудь халявным инетом,
> потом дома с болванки синхронизуют локальный Сизиф. На той
> машине, где будет скачивание нужно всего лишь запустить скрипт, а
> потом записать диск.
Ой. У меня тоже есть пара скриптов на эту тему. Недоделаные
правда слегка... Приаттачено.

P.S. 2ldv: только пожалуйста не надо бить меня ногами по лицу,
этим скриптам уже года два и я знаю что и как там надо зафиксить ;-)

-- 
Regards, Sir Raorn.
-------------------
Если пользователь хочет выполнять системые привилегированные задачи, то
это почти так же плохо, как и выполнение рутом пользовательских задач.
		-- ldv in sisyphus@
----------- следующая часть -----------
#!/bin/sh

while [ -n "$1" ]; do
    if [ -L "$1" ]; then
	echo "`readlink "$1" | md5sum | cut -b 1-33` $1"
    else
	md5sum "$1"
    fi
    shift
done
exit $?
----------- следующая часть -----------
#!/bin/sh

Usage() {
	cat <<EOF
Usage: ${0##*/} {--list | DATE} DIR
EOF
	exit $1
}

Exit() {
    local rc=$?
    trap '' EXIT
    rm -f -- $tmpfile
    exit $rc
}

if [ ! $# -eq 2 ]; then
	Usage 1 1>&2
fi

file=""
dir=""
what=""

export cdate=`date +%Y%m%d`

tmpfile=`mktemp ${TMPDIR-/tmp}/makeupdate.$$.XXXXXXXXXX`
trap 'Exit ' EXIT HUP INT PIPE TERM QUIT

sdate="$1"
dir="$2"

find "$dir" \( -type f -or -type l \) -print0 | xargs -0 lmd5sum |
sort -k 2 |
(if [ "$sdate" = "--list" ]; then
    cat > $cdate.list
else
    tee $cdate.list |
    diff -U0 $sdate.list - |
    perl -e '
open UPSH, ">update.sh" or die;
print UPSH "#!/bin/sh\n";
print UPSH "echo -e \"\\nMaking update to $ENV{cdate}\\n\"";
$l = 7;
while(<>) {
	chomp;
	($w, $f) = ($_ =~ /(.)[0-9a-f]{32}.\s*(\S+)/);
	next if $w !~ /[+-]/;
	if ($w =~ /-/) {
		print UPSH "rm -f \"".$f."\" && echo \"- ".$f."\"\n";
		$l++;
	} else {
		print $f."\000";
	}
}

print UPSH "\n";
print UPSH "tail +$l \"\$0\" | tar xPvf - | xargs -i echo \"+ {}\"\n";
print UPSH "apt-get update\n";
print UPSH "exit \$?;\n";
close UPSH;
' > $tmpfile
    tar cPf - --null -T $tmpfile >> update.sh
fi )
rm -f $tmpfile
trap '' EXIT
exit 0
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20031008/58c88a11/attachment-0001.bin>


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