000-sync_gentoo_cache (1205B)
1 #!/bin/bash 2 3 repository_name="${1}" 4 repository_path="${3}" 5 6 [[ ${repository_name} == "gentoo" ]] || exit 0 7 8 source /lib/gentoo/functions.sh 9 10 # Number of jobs for egencache, default is number or processors. 11 parallel_jobs="$(nproc)" 12 13 if [[ -f ${repository_path}/metadata/timestamp.x ]]; then 14 portage_current_timestamp=$(cut -f 1 -d " " "${repository_path}/metadata/timestamp.x" ) 15 else 16 portage_current_timestamp=0 17 fi 18 19 ebegin "Fetching metadata timestamp for ${repository_name}" 20 rsync -aq rsync://rsync.gentoo.org/gentoo-portage/metadata/timestamp.x "${repository_path}"/metadata/timestamp.x 21 eend $? 22 portage_new_timestamp=$(cut -f 1 -d " " "${repository_path}/metadata/timestamp.x" ) 23 24 if [[ ${portage_current_timestamp} -lt ${portage_new_timestamp} ]]; then 25 ebegin "Fetching pre-generated metadata cache for ${repository_name}" 26 rsync -aq rsync://rsync.gentoo.org/gentoo-portage/metadata/md5-cache/ "${repository_path}"/metadata/md5-cache/ 27 eend $? 28 else 29 einfo "Metadata cache for ${repository_name} already recent, no need to fetch it :-)" 30 fi 31 32 ebegin "Updating metadata cache for ${repository_name}" 33 egencache --jobs="${parallel_jobs}" --repo="${repository_name}" --update --update-use-local-desc 34 eend $?