X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-repo;h=050e5ae0d9ee6a4a4b9dfde04721464932746fef;hb=ae83ee4a50e12a6df6676a2cc2af70618ff67943;hp=250e1e75f0ca0b1ae38622d6faa15027125d7b0f;hpb=cde24e1cff5b44fa7a2ab5db414975f6c667fd34;p=zpackage diff --git a/zpm-repo b/zpm-repo index 250e1e7..050e5ae 100755 --- a/zpm-repo +++ b/zpm-repo @@ -45,6 +45,13 @@ mkdir -p $repodir 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 @@ -92,6 +99,10 @@ update_info() { 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" @@ -146,6 +157,15 @@ download() { 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 ;; @@ -185,6 +205,11 @@ case $action in shift zpm list -f $repodir/$repo.repo "$@" ;; + contents) + repo=$1 + shift + zpm contents -f $repodir/$repo.repo "$@" + ;; *) echo unknown action exit 1