| #!/usr/bin/env bash |
| |
| grab_prune_version() { |
| conda search -c "${CHANNEL}" --platform "${platform}" "${PKG}" 2>/dev/null | \ |
| grep "${CHANNEL}" | \ |
| awk -F ' *' '{print $2}' | \ |
| uniq | \ |
| head -n -1 | \ |
| xargs |
| } |
| |
| grab_latest_version() { |
| conda search -c "${CHANNEL}" --platform "${platform}" "${PKG}" 2>/dev/null | \ |
| grep "${CHANNEL}" | \ |
| awk -F ' *' '{print $2}' | \ |
| uniq | \ |
| tail -n 1 | \ |
| xargs |
| } |
| |
| grab_specs_for_version() { |
| conda search -c "${CHANNEL}" --platform "${platform}" "${PKG}" 2>/dev/null | \ |
| grep "${CHANNEL}" | \ |
| grep "$1" | \ |
| awk -F ' *' '{print $3}' | \ |
| uniq | \ |
| xargs |
| } |
| |
| set -eou pipefail |
| |
| CHANNEL=${CHANNEL:-pytorch-nightly} |
| PKG=${PKG:-pytorch} |
| PLATFORMS=${PLATFORMS:-noarch osx-64 osx-arm64 linux-64 win-64} |
| |
| for platform in ${PLATFORMS}; do |
| latest_version="$(grab_latest_version || true)" |
| specs_in_latest_version="$(grab_specs_for_version "${latest_version}" || true)" |
| versions_to_prune="$(grab_prune_version || true)" |
| for version in ${versions_to_prune}; do |
| specs_in_prune_version="$(grab_specs_for_version "${version}" || true)" |
| for spec in ${specs_in_prune_version}; do |
| # If this spec is included in specs_in_latest_version, then remove it. |
| if [[ "${specs_in_latest_version}" =~ ${spec} ]];then |
| ( |
| set -x |
| anaconda remove --force "${CHANNEL}/${PKG}/${version}/${platform}/${PKG}-${version}-${spec}.tar.bz2" |
| ) |
| fi |
| done |
| done |
| done |