1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
#!/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
|