X-Git-Url: https://pd.if.org/git/?p=zpackage;a=blobdiff_plain;f=zpm-repo;h=76359b8e2f6679ae2f80b01ea3779d1acf6a3b30;hp=050e5ae0d9ee6a4a4b9dfde04721464932746fef;hb=09c80a1f8918d888063f4d1a75921a99fe5f0b5c;hpb=4b853577a65802c130837d9a9669ca3e4413dee8 diff --git a/zpm-repo b/zpm-repo index 050e5ae..76359b8 100755 --- a/zpm-repo +++ b/zpm-repo @@ -105,24 +105,23 @@ update_info() { fi if [ -f "$rf" ]; then # TODO merge in so packages aren't deleted - curl -f '-#' -z "$rf" -o "$rf.tmp" "$url" + zpm fetchurl -fpn -z "$rf" -o "$rf.tmp" "$url" rv=$? else - curl -f '-#' -o "$rf" "$url" && refresh "$repo" + zpm fetchurl -fpn -o "$rf.tmp" "$url" && refresh "$repo" rv=$? fi if [ $rv -eq 0 ]; then - test -f "$rf.tmp" && mv "$rf.tmp" "$rf" + test -f "$rf.tmp" && + zpm test "$rf.tmp" && + mv "$rf.tmp" "$rf" refresh "$repo" fi done } -# response=$(curl --write-out %{http_code} --silent --output /dev/null servername) -# --head - head_response_code() { - curl --write-out '%{http_code}' --silent --output /dev/null -z $2 $1 + zpm fetchurl -S -z "$2" "$1" } download() { @@ -146,17 +145,38 @@ download() { continue fi echo downloading $pkgid - curl -f '-#' -z "$dest" -o "$dest.tmp" $fetch + zpm fetchurl -f '-#' -z "$dest" -o "$dest.tmp" $fetch mv "$dest.tmp" "$dest" else echo downloading $pkgid - curl -f '-#' -o "$dest.tmp" $fetch + zpm fetchurl -f '-#' -o "$dest.tmp" $fetch mv "$dest.tmp" "$dest" fi fi done } +purge() { + repo=$1 + shift + url=$(select "$repo" url) + base=${url%/*} + for package in "$@"; do + pkgid=$(zpm findpkg -f $repodir/$repo.repo $package) + if [ -z "$pkgid" ]; then + warn "no package found for $package" + else + mkdir -p "$repodir/$repo" + dest="$repodir/$repo/$pkgid.zpm" + + if [ -f "$dest" ]; then + rm $dest + fi + zpm rmpackage -f $repodir/$repo.repo $pkgid + fi + done +} + check_for_repo() { rn=$(select "$1" name) if [ -z "$rn" ]; then @@ -178,7 +198,7 @@ case $action in name=$(zpm quote "$1") zpm shell $ZPMDB "delete from repository where name = '$name'" rm -f $repodir/$1.repo - # TODO delete caches + test -d "$repodir/$repo" && rm -r "$repodir/$repo" ;; url) if [ -n "$2" ]; then @@ -210,6 +230,10 @@ case $action in shift zpm contents -f $repodir/$repo.repo "$@" ;; + purge) + purge "$@" + ;; + *) echo unknown action exit 1