1#!/usr/bin/env bash 2 3grab_prune_version() { 4 conda search -c "${CHANNEL}" --platform "${platform}" "${PKG}" 2>/dev/null | \ 5 grep "${CHANNEL}" | \ 6 awk -F ' *' '{print $2}' | \ 7 uniq | \ 8 head -n -1 | \ 9 xargs 10} 11 12grab_latest_version() { 13 conda search -c "${CHANNEL}" --platform "${platform}" "${PKG}" 2>/dev/null | \ 14 grep "${CHANNEL}" | \ 15 awk -F ' *' '{print $2}' | \ 16 uniq | \ 17 tail -n 1 | \ 18 xargs 19} 20 21grab_specs_for_version() { 22 conda search -c "${CHANNEL}" --platform "${platform}" "${PKG}" 2>/dev/null | \ 23 grep "${CHANNEL}" | \ 24 grep "$1" | \ 25 awk -F ' *' '{print $3}' | \ 26 uniq | \ 27 xargs 28} 29 30set -eou pipefail 31 32CHANNEL=${CHANNEL:-pytorch-nightly} 33PKG=${PKG:-pytorch} 34PLATFORMS=${PLATFORMS:-noarch osx-64 osx-arm64 linux-64 win-64} 35 36for platform in ${PLATFORMS}; do 37 latest_version="$(grab_latest_version || true)" 38 specs_in_latest_version="$(grab_specs_for_version "${latest_version}" || true)" 39 versions_to_prune="$(grab_prune_version || true)" 40 for version in ${versions_to_prune}; do 41 specs_in_prune_version="$(grab_specs_for_version "${version}" || true)" 42 for spec in ${specs_in_prune_version}; do 43 # If this spec is included in specs_in_latest_version, then remove it. 44 if [[ "${specs_in_latest_version}" =~ ${spec} ]];then 45 ( 46 set -x 47 anaconda remove --force "${CHANNEL}/${PKG}/${version}/${platform}/${PKG}-${version}-${spec}.tar.bz2" 48 ) 49 fi 50 done 51 done 52done 53