diff --git a/etc/paludis/hooks/set_portdir.bash b/etc/paludis/hooks/set_portdir.bash index 0a6f457..5924aa5 100644 --- a/etc/paludis/hooks/set_portdir.bash +++ b/etc/paludis/hooks/set_portdir.bash @@ -2,8 +2,7 @@ # set PORTDIR -PORTDIR="$(${CAVE} print-repository-metadata --raw-name location gentoo)" -PORTDIR=${PORTDIR#location=} +PORTDIR="$(${CAVE} print-repository-metadata --format '%v' --raw-name location gentoo)" if [[ -z ${PORTDIR} || "$(dirname ${PORTDIR})" == "/" ]] ; then die "PORTDIR empty or pointing to root!" diff --git a/etc/paludis/hooks/sync_all_post/01-sync_cache.bash b/etc/paludis/hooks/sync_all_post/01-sync_cache.bash new file mode 100644 index 0000000..6505c40 --- /dev/null +++ b/etc/paludis/hooks/sync_all_post/01-sync_cache.bash @@ -0,0 +1,24 @@ +#!/bin/bash + +source "${PALUDIS_EBUILD_DIR}/echo_functions.bash" +source "/etc/paludis/hooks/set_portdir.bash" +source "/etc/paludis/hooks/util_functions.bash" + +# You may change this to only update cache of specific repositories. +# Should at least include 'gentoo'. Default is all repositories. +repository_list=( $(print_ebuild_repositories) ) + +# Number of jobs for egencache, default is number or processors. +egencache_jobnum="$(nproc)" + +ebegin "Fetching pre-generated metadata cache for gentoo repository" +rsync -aq rsync://rsync.gentoo.org/gentoo-portage/metadata/md5-cache/ "${PORTDIR}"/metadata/md5-cache/ +eend $? + +einfo "Updating metadata cache for repositories:" +for _repo in ${repository_list[@]} ; do + ebegin " ${_repo}" + egencache --jobs=${egencache_jobnum} --repo=${_repo} --update --update-use-local-desc + eend $? +done + diff --git a/etc/paludis/hooks/sync_all_post/sync_dtd.bash b/etc/paludis/hooks/sync_all_post/02-sync_dtd.bash similarity index 67% rename from etc/paludis/hooks/sync_all_post/sync_dtd.bash rename to etc/paludis/hooks/sync_all_post/02-sync_dtd.bash index 60f38b4..3a57acb 100644 --- a/etc/paludis/hooks/sync_all_post/sync_dtd.bash +++ b/etc/paludis/hooks/sync_all_post/02-sync_dtd.bash @@ -6,8 +6,8 @@ source "/etc/paludis/hooks/set_portdir.bash" DTDDIR=${PORTDIR}/metadata/dtd ebegin "Updating DTDs" if [[ -e ${DTDDIR} ]]; then - git -C "${DTDDIR}" pull --ff + git -C "${DTDDIR}" pull -q --ff else - git clone https://anongit.gentoo.org/git/data/dtd.git "${DTDDIR}" + git clone -q https://anongit.gentoo.org/git/data/dtd.git "${DTDDIR}" fi eend "$?" diff --git a/etc/paludis/hooks/sync_all_post/sync_glsa.bash b/etc/paludis/hooks/sync_all_post/03-sync_glsa.bash similarity index 66% rename from etc/paludis/hooks/sync_all_post/sync_glsa.bash rename to etc/paludis/hooks/sync_all_post/03-sync_glsa.bash index 47cff61..1f90505 100644 --- a/etc/paludis/hooks/sync_all_post/sync_glsa.bash +++ b/etc/paludis/hooks/sync_all_post/03-sync_glsa.bash @@ -6,8 +6,8 @@ source "/etc/paludis/hooks/set_portdir.bash" GLSADIR=${PORTDIR}/metadata/glsa ebegin "Updating GLSAs" if [[ -e ${GLSADIR} ]]; then - git -C "${GLSADIR}" pull --ff + git -C "${GLSADIR}" pull -q --ff else - git clone https://anongit.gentoo.org/git/data/glsa.git "${GLSADIR}" + git clone -q https://anongit.gentoo.org/git/data/glsa.git "${GLSADIR}" fi eend "$?" diff --git a/etc/paludis/hooks/sync_all_post/sync_herds_xml.bash b/etc/paludis/hooks/sync_all_post/04-sync_herds_xml.bash similarity index 63% rename from etc/paludis/hooks/sync_all_post/sync_herds_xml.bash rename to etc/paludis/hooks/sync_all_post/04-sync_herds_xml.bash index 7afb050..3169df8 100644 --- a/etc/paludis/hooks/sync_all_post/sync_herds_xml.bash +++ b/etc/paludis/hooks/sync_all_post/04-sync_herds_xml.bash @@ -4,5 +4,5 @@ source "${PALUDIS_EBUILD_DIR}/echo_functions.bash" source "/etc/paludis/hooks/set_portdir.bash" ebegin "Updating herds.xml" -wget -O "${PORTDIR}"/metadata/herds.xml https://api.gentoo.org/packages/herds.xml +wget -q -O "${PORTDIR}"/metadata/herds.xml https://api.gentoo.org/packages/herds.xml eend $? diff --git a/etc/paludis/hooks/sync_all_post/sync_news.bash b/etc/paludis/hooks/sync_all_post/05-sync_news.bash similarity index 79% rename from etc/paludis/hooks/sync_all_post/sync_news.bash rename to etc/paludis/hooks/sync_all_post/05-sync_news.bash index bfc1e61..4ce3576 100644 --- a/etc/paludis/hooks/sync_all_post/sync_news.bash +++ b/etc/paludis/hooks/sync_all_post/05-sync_news.bash @@ -7,9 +7,9 @@ source "/etc/paludis/hooks/util_functions.bash" NEWSDIR="${PORTDIR}"/metadata/news ebegin "Updating news items" if [[ -e ${NEWSDIR} ]]; then - git -C "${NEWSDIR}" pull --ff + git -C "${NEWSDIR}" pull -q --ff else - git clone https://anongit.gentoo.org/git/proj/gentoo-news.git "${NEWSDIR}" + git clone -q https://anongit.gentoo.org/git/proj/gentoo-news.git "${NEWSDIR}" fi eend_die $? diff --git a/etc/paludis/hooks/sync_all_post/sync_cache.bash b/etc/paludis/hooks/sync_all_post/sync_cache.bash deleted file mode 100644 index afbcc97..0000000 --- a/etc/paludis/hooks/sync_all_post/sync_cache.bash +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -source "${PALUDIS_EBUILD_DIR}/echo_functions.bash" -source "/etc/paludis/hooks/set_portdir.bash" - -# add your overlays here (name of the overlay!) -overlay_list=( -) - -ebegin "Syncing metadata cache for gentoo repository" -rsync -avPq rsync://rsync.gentoo.org/gentoo-portage/metadata/md5-cache/ "${PORTDIR}"/metadata/md5-cache/ -egencache --jobs=$(nproc) --repo=gentoo --update --update-use-local-desc -eend $? - -if [[ ${#overlay_list[@]} -gt 0 ]] ; then - ebegin "Syncing metadata cache for overlays" - for _overlay in ${overlay_list[@]} ; do - einfo " ${_overlay}" - egencache --jobs=$(nproc) --repo=${_overlay} --update --update-use-local-desc - done - eend $? -fi diff --git a/etc/paludis/hooks/util_functions.bash b/etc/paludis/hooks/util_functions.bash index 6a430a9..1e4ca91 100644 --- a/etc/paludis/hooks/util_functions.bash +++ b/etc/paludis/hooks/util_functions.bash @@ -6,3 +6,11 @@ eend_die() { eend "$@" [[ $1 -ne 0 ]] && exit $1 } + +print_ebuild_repositories() { + local i + for i in $(${CAVE} print-repositories) ; do + [[ "$(${CAVE} print-repository-metadata --format "%v" --raw-name format $i)" == "e" ]] && + echo $i + done +}