43 lines
1 KiB
Text
43 lines
1 KiB
Text
|
#!/usr/bin/env bash
|
||
|
|
||
|
set -eu
|
||
|
|
||
|
# shellcheck disable=SC1007
|
||
|
THIS_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||
|
# shellcheck disable=SC1091
|
||
|
. "${THIS_DIR}/../.environment.sh"
|
||
|
|
||
|
# pre-download everything but don't install anything
|
||
|
|
||
|
echo -n "Purging existing hub..."
|
||
|
|
||
|
types=$("$CSCLI" hub types -o raw)
|
||
|
|
||
|
for itemtype in $types; do
|
||
|
"$CSCLI" "${itemtype}" delete --all --error --purge --force
|
||
|
done
|
||
|
|
||
|
echo " done."
|
||
|
|
||
|
echo -n "Pre-downloading Hub content..."
|
||
|
|
||
|
for itemtype in $types; do
|
||
|
ALL_ITEMS=$("$CSCLI" "$itemtype" list -a -o json | jq --arg itemtype "$itemtype" -r '.[$itemtype][].name')
|
||
|
if [[ -n "${ALL_ITEMS}" ]]; then
|
||
|
#shellcheck disable=SC2086
|
||
|
"$CSCLI" "$itemtype" install \
|
||
|
$ALL_ITEMS \
|
||
|
--download-only \
|
||
|
--error
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# XXX: download-only works only for collections, not for parsers, scenarios, postoverflows.
|
||
|
# so we have to delete the links manually, and leave the downloaded files in place
|
||
|
|
||
|
for itemtype in $types; do
|
||
|
"$CSCLI" "$itemtype" delete --all --error
|
||
|
done
|
||
|
|
||
|
echo " done."
|