export ZPMDB
+warn() {
+ printf '%s:' "$0" 1>&2
+ printf ' %s' $* 1>&2
+ printf '\n' 1>&2
+ exit 1
+}
+
die() {
printf '%s:' "$0" 1>&2
printf ' %s' $* 1>&2
for repo in "$@"; do
url=$(select "$repo" url)
rf="$repodir/$repo.repo"
+ if [ -z "$url" ]; then
+ check_for_repo "$repo" || warn "no url for repo $repo"
+ return 1
+ fi
if [ -f "$rf" ]; then
# TODO merge in so packages aren't deleted
- curl -f '-#' -z "$rf" -o "$rf.tmp" "$url" &&
- mv "$rf.tmp" "$rf" &&
- refresh "$repo"
+ curl -f '-#' -z "$rf" -o "$rf.tmp" "$url"
+ rv=$?
else
curl -f '-#' -o "$rf" "$url" && refresh "$repo"
+ rv=$?
+ fi
+ if [ $rv -eq 0 ]; then
+ test -f "$rf.tmp" && mv "$rf.tmp" "$rf"
+ refresh "$repo"
fi
done
}
done
}
+check_for_repo() {
+ rn=$(select "$1" name)
+ if [ -z "$rn" ]; then
+ warn "no repository $1"
+ return 1
+ fi
+ return 0
+}
+
case $action in
list)
select '' priority,name,url,refreshed ;;
shift
zpm list -f $repodir/$repo.repo "$@"
;;
+ contents)
+ repo=$1
+ shift
+ zpm contents -f $repodir/$repo.repo "$@"
+ ;;
*)
echo unknown action
exit 1