blob: 8b703952ed357f3778ab9d9a6b82514cf13b4c4f [file] [log] [blame]
#!/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