#!/usr/bin/env bash # Copyright (C) 2011-2012 Nicolás Reynolds # Copyright (C) 2012 Joshua Ismael Haase Hernández (xihh) # # License: GNU GPLv3+ # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . . libremessages . "$(librelib conf.sh)" load_files libretools check_vars libretools TORUPATH REPOS || exit 1 load_files abs check_vars abs ABSROOT || exit 1 LASTSYNCFILE=${TORUPATH}/lastsync FORCE=false QUIET=false DEBUG=false # Stores the lastsync date lastsync() { local lastsyncfile="$1" if [[ -e "${lastsyncfile}" -a ! -w "${lastsyncfile}" ]]; then error "The sync date can't be saved: file not writable: %q" "${lastsyncfile}" return 1 fi date +%s > "${lastsyncfile}" touch "${lastsyncfile}" } get_dbs() { local _db for _db in /var/lib/pacman/sync/*.db; do bsdtar tf "${_db}" | cut -d/ -f1 | sort -u done } # repo paths get_pkgbuilds() { local lastsyncfile="$1"; shift # Only find newer than lastsyncfile and read # everything else from cache local extra=(-newer "${lastsyncfile}") if [[ $FORCE = true || ! -e ${lastsyncfile} ]]; then $QUIET || warning "Forcing upgrade" # Get all PKGBUILDs extra=() fi # Return all PKGBUILDs found find "$@" -mindepth 2 -maxdepth 3 -type f -name 'PKGBUILD' "${extra[@]}" } setup_traps