]> git.wh0rd.org - home.git/commitdiff
unify gentoo-sync script
authorMike Frysinger <vapier@gentoo.org>
Fri, 5 Oct 2012 21:05:13 +0000 (17:05 -0400)
committerMike Frysinger <vapier@gentoo.org>
Fri, 5 Oct 2012 21:06:09 +0000 (17:06 -0400)
.bin/gentoo-sync [new file with mode: 0755]

diff --git a/.bin/gentoo-sync b/.bin/gentoo-sync
new file mode 100755 (executable)
index 0000000..5e84584
--- /dev/null
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+[[ ${FLOCKER} != $0 ]] && exec env FLOCKER=$0 flock -en $0 -c "$0 $*" || :
+
+logdir="/var/log"
+sync_log="${logdir}/rsync.log"
+up_log="${logdir}/emerge-updates.log"
+
+GS_RSYNC=false
+GS_EUPDATEDB=true
+GS_FETCH=false
+GS_UPWORLD=true
+conf="/etc/gentoo-sync.conf"
+[[ -e ${conf} ]] && . "${conf}"
+
+export NOCOLOR=true
+
+(
+date
+
+if ${GS_RSYNC} ; then
+       # For slow systems, run rsync directly.
+       for f in make.globals make.conf ; do
+               for d in /etc /etc/portage /usr/share/portage/config ; do
+                       f="${d}/make.globals"
+                       [[ -e ${f} ]] && . ${f} && break
+               done
+       done
+       : ${PORTAGE_RSYNC_OPTS:=-azO --delete --exclude=/distfiles --exclude=/local --exclude=/packages}
+       : ${SYNC:=rsync://rsync.gentoo.org/gentoo-portage}
+       : ${PORTDIR:=/usr/portage}
+       exec rsync ${PORTAGE_RSYNC_OPTS} ${PORTAGE_RSYNC_EXTRA_OPTS} ${SYNC}/ ${PORTDIR}/
+fi
+
+emerge --sync -q
+date
+${GS_EUPDATEDB} && $(type -P eupdatedb)
+date
+${GS_FETCH} && emerge world -Duf
+#q -qr
+date
+) >& ${sync_log}
+
+if ${GS_UPWORLD} ; then
+       (
+       eval $(portageq envvar -v PORTDIR)
+       cd "${PORTDIR}"
+       good_pkgs=$(ls -d `qlist -IC`)
+       echo 'emerge -u1 --keep-going $(awk '\''$2 ~ /\// {print $2}'\'' '${up_log}')'
+       emerge ${good_pkgs} -upq --cols
+       ) >& ${up_log}
+fi