Lines 4-14
Link Here
|
4 |
# Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally. |
4 |
# Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally. |
5 |
# Rewritten from the old, Perl-based emerge-webrsync script |
5 |
# Rewritten from the old, Perl-based emerge-webrsync script |
6 |
|
6 |
|
|
|
7 |
argv0=$0 |
8 |
|
9 |
# error echos |
10 |
eecho() { echo "${argv0}: error: $*" 1>&2 ; } |
11 |
|
7 |
#------------------- |
12 |
#------------------- |
8 |
#initialization |
13 |
#initialization |
9 |
#------------------ |
14 |
#------------------ |
10 |
|
15 |
|
11 |
f=$(python -c 'import portage, sys; sys.stdout.write("|".join([portage.settings[x] for x in ("PORTAGE_NICENESS", "FEATURES", "GENTOO_MIRRORS", "PORTDIR", "FETCHCOMMAND", "USERLAND", "DISTDIR", "PORTAGE_TMPDIR")]))') |
16 |
f=$(python -c 'import portage, sys; sys.stdout.write("|".join([portage.settings[x] for x in ("PORTAGE_NICENESS", "FEATURES", "GENTOO_MIRRORS", "PORTDIR", "FETCHCOMMAND", "USERLAND", "DISTDIR", "PORTAGE_GPG_DIR", "PORTAGE_TMPDIR")]))') |
12 |
|
17 |
|
13 |
IFS='|' |
18 |
IFS='|' |
14 |
PORTAGE_NICENESS="${f%%|*}"; f="${f#*|}" |
19 |
PORTAGE_NICENESS="${f%%|*}"; f="${f#*|}" |
Lines 18-23
PORTDIR="${f%%|*}" ; f="${f#*|}"
Link Here
|
18 |
FETCHCOMMAND="${f%%|*}" ; f="${f#*|}" |
23 |
FETCHCOMMAND="${f%%|*}" ; f="${f#*|}" |
19 |
USERLAND="${f%%|*}" ; f="${f#*|}" |
24 |
USERLAND="${f%%|*}" ; f="${f#*|}" |
20 |
DISTDIR="${f%%|*}" ; f="${f#*|}" |
25 |
DISTDIR="${f%%|*}" ; f="${f#*|}" |
|
|
26 |
PORTAGE_GPG_DIR="${f%%|*}" ; f="${f#*|}" |
21 |
TMPDIR="${f%%|*}/snapshots" |
27 |
TMPDIR="${f%%|*}/snapshots" |
22 |
unset IFS |
28 |
unset IFS |
23 |
|
29 |
|
Lines 45-50
unset IFS
Link Here
|
45 |
MUST_SYNC='1' |
51 |
MUST_SYNC='1' |
46 |
unset PUKE_HELP wgetops |
52 |
unset PUKE_HELP wgetops |
47 |
for x in $*; do |
53 |
for x in $*; do |
|
|
54 |
case "${x}" in |
55 |
-q|--quiet) |
56 |
PORTAGE_QUIET=1 |
57 |
continue |
58 |
;; |
59 |
esac |
48 |
if [[ $x == "-u" ]]; then |
60 |
if [[ $x == "-u" ]]; then |
49 |
MUST_SYNC='' |
61 |
MUST_SYNC='' |
50 |
elif [[ $x == "-k" ]]; then |
62 |
elif [[ $x == "-k" ]]; then |
Lines 69-74
if [[ ! -d $STATE_DIR ]]; then
Link Here
|
69 |
exit -2 |
81 |
exit -2 |
70 |
fi |
82 |
fi |
71 |
|
83 |
|
|
|
84 |
if has webrsync-gpg ${FEATURES} ; then |
85 |
WEBSYNC_VERIFY_SIGNATURE=1 |
86 |
else |
87 |
WEBSYNC_VERIFY_SIGNATURE=0 |
88 |
fi |
89 |
if [ ${WEBSYNC_VERIFY_SIGNATURE} != 0 -a -z "${PORTAGE_GPG_DIR}" ]; then |
90 |
eecho "please set PORTAGE_GPG_DIR in make.conf" |
91 |
exit 1 |
92 |
fi |
93 |
|
72 |
if [[ ! -d $DISTDIR ]] ; then |
94 |
if [[ ! -d $DISTDIR ]] ; then |
73 |
mkdir -p $DISTDIR |
95 |
mkdir -p $DISTDIR |
74 |
fi |
96 |
fi |
Lines 269-274
verify_md5_file() {
Link Here
|
269 |
fi |
291 |
fi |
270 |
} |
292 |
} |
271 |
|
293 |
|
|
|
294 |
check_file_signature() { |
295 |
local signature="$1" |
296 |
local file="$2" |
297 |
local r=1 |
298 |
|
299 |
if [[ ${WEBSYNC_VERIFY_SIGNATURE} != 0 ]] ; then |
300 |
|
301 |
vecho "Checking signature ..." |
302 |
|
303 |
if type -P gpg > /dev/null; then |
304 |
gpg --homedir "${PORTAGE_GPG_DIR}" --verify "$signature" "$file" && r=0 |
305 |
else |
306 |
eecho "cannot check signature: gpg binary not found" |
307 |
exit 1 |
308 |
fi |
309 |
else |
310 |
r=0 |
311 |
fi |
312 |
|
313 |
return "${r}" |
314 |
} |
272 |
|
315 |
|
273 |
#-------------------- |
316 |
#-------------------- |
274 |
#inline actual script |
317 |
#inline actual script |
Lines 428-434
else
Link Here
|
428 |
got_umd5=1 |
471 |
got_umd5=1 |
429 |
fi |
472 |
fi |
430 |
fi |
473 |
fi |
431 |
|
474 |
|
|
|
475 |
if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 && ! -e portage-${final_date}.tar.bz2.gpgsig ]] && \ |
476 |
! fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.gpgsig" "portage-${final_date}.tar.bz2.gpgsig" ; then |
477 |
echo "warning... couldn't grab the gpgsig for ${final_date}. which is odd" |
478 |
echo "thus, bailing (sorry)" |
479 |
exit 5 |
480 |
fi |
481 |
|
432 |
# generate tmp dir. |
482 |
# generate tmp dir. |
433 |
TEMPDIR=$(mktemp -d /tmp/delta-webrsync-XXXXXX) |
483 |
TEMPDIR=$(mktemp -d /tmp/delta-webrsync-XXXXXX) |
434 |
# got our patches. |
484 |
# got our patches. |
Lines 454-460
unset need_last_sync
Link Here
|
454 |
if [ "$verified" == "1" ]; then |
504 |
if [ "$verified" == "1" ]; then |
455 |
echo "recompressing. (backgrounding)" |
505 |
echo "recompressing. (backgrounding)" |
456 |
need_last_sync="dar" |
506 |
need_last_sync="dar" |
457 |
bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar" & |
507 |
if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then |
|
|
508 |
bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar" |
509 |
check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${TEMPDIR}/portage-${final_date}.tar.bz2" || exit 1 |
510 |
else |
511 |
bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar" & |
512 |
fi |
458 |
|
513 |
|
459 |
echo "beginning update to the tree" |
514 |
echo "beginning update to the tree" |
460 |
sync_local "${TEMPDIR}/portage-${final_date}.tar" |
515 |
sync_local "${TEMPDIR}/portage-${final_date}.tar" |
Lines 496-501
else
Link Here
|
496 |
fi |
551 |
fi |
497 |
|
552 |
|
498 |
if [ -z "${need_last_sync}" ]; then |
553 |
if [ -z "${need_last_sync}" ]; then |
|
|
554 |
if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then |
555 |
check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${dfile}" || exit 1 |
556 |
fi |
499 |
echo "beginning update to the tree" |
557 |
echo "beginning update to the tree" |
500 |
sync_local "${dfile}" |
558 |
sync_local "${dfile}" |
501 |
fi |
559 |
fi |
Lines 504-510
if [[ -z $KEEP_OLDIES ]]; then
Link Here
|
504 |
echo "cleansing" |
562 |
echo "cleansing" |
505 |
for x in $potentials; do |
563 |
for x in $potentials; do |
506 |
echo "removing ${x}" |
564 |
echo "removing ${x}" |
507 |
rm "${DISTDIR}/${x}" "${DISTDIR}/${x}.md5sum" &> /dev/null |
565 |
rm "${DISTDIR}/${x}"{,.md5sum,.umd5sum,.gpgsig} &> /dev/null |
508 |
rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null |
566 |
rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null |
509 |
done |
567 |
done |
510 |
fi |
568 |
fi |
511 |
- |
|
|