10 conf
="/etc/gentoo-sync.conf"
11 [[ -e ${conf} ]] && .
"${conf}"
15 Usage: ${0##*/} [options]
19 -a, --all, -na, --noall
20 -s, --sync, -ns, --nosync ${GS_SYNC}
21 -r, --rsync, -nr, --norsync ${GS_RSYNC}
22 -d, --database, -nd, --nodatabase ${GS_EUPDATEDB}
23 -f, --fetch, -nf, --nofetch ${GS_FETCH}
24 -w, --world, -nw, --noworld ${GS_UPWORLD}
25 -l, --layman, -nl, --nolayman ${GS_LAYMAN}
26 -x, --debug, -nx, --nodebug ${GS_DEBUG}
41 -a|
--all) s true SYNC RSYNC EUPDATEDB FETCH UPWORLD LAYMAN DEBUG
;;
42 -na|
--noall) s false SYNC RSYNC EUPDATEDB FETCH UPWORLD LAYMAN DEBUG
;;
43 -s|
--sync) s true SYNC
;;
44 -ns|
--nosync) s false SYNC
;;
45 -r|
--rsync) s true RSYNC
;;
46 -nr|
--norsync) s false RSYNC
;;
47 -d|
--database) s true EUPDATEDB
;;
48 -nd|
--nodatabase) s false EUPDATEDB
;;
49 -f|
--fetch) s true FETCH
;;
50 -nf|
--nofetch) s false FETCH
;;
51 -w|
--world) s true UPWORLD
;;
52 -nw|
--noworld) s false UPWORLD
;;
53 -l|
--layman) s true LAYMAN
;;
54 -nl|
--nolayman) s false LAYMAN
;;
55 -x|
--debug) s true DEBUG
;;
56 -nx|
--nodebug) s false DEBUG
;;
61 [ "${FLOCKER}" != "$0" ] && exec env FLOCKER
="$0" flock
-en "$0" "$0" "$@" ||
:
65 sync_log
="${logdir}/rsync.log"
66 up_log
="${logdir}/emerge-updates.log"
74 # For slow systems, run rsync directly.
75 for f
in make.globals
make.conf
; do
76 for d
in /etc
/etc
/portage
/usr
/share
/portage
/config
; do
78 [[ -e ${f} ]] && .
${f} && break
82 : ${PORTAGE_RSYNC_OPTS:=-azO --delete --exclude=/distfiles --exclude=/local --exclude=/packages}
83 : ${SYNC:=rsync://rsync.gentoo.org/gentoo-portage}
84 : ${PORTDIR:=/usr/portage}
85 exec rsync
${PORTAGE_RSYNC_OPTS} ${PORTAGE_RSYNC_EXTRA_OPTS} ${SYNC}/ ${PORTDIR}/ >& "${sync_log}"
91 ${GS_EUPDATEDB} && $(type -P eupdatedb)
93 ${GS_LAYMAN} && l=$(type -P layman) && ${l} -S -q
95 ${GS_FETCH} && emerge world -Duf
102 if ${GS_UPWORLD} ; then
105 $(portageq repositories_configuration / | awk '$1 == "location
" { $1 = $2 = ""; print }')
109 for p in `qlist -ICS` ; do
111 for repo in ${repos[@]} ; do
112 if [[ -d ${repo}/${p%:*} ]] ; then
125 if [[ ${#bad_pkgs[@]} -gt 0 ]] ; then
126 echo 'These packages no longer exist:'
127 printf '\t%s\n' "${bad_pkgs[@]}"
130 echo 'emerge -u1v --quiet-build y --keep-going $(awk '\''$2 ~ /\// {print $2}'\'' '${up_log}')'
132 $(printf '%s\n' ${good_pkgs[*]} | grep -v '^cross-')