|
@@ -20,8 +20,8 @@ normalize_label() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if [[ ! -f "${SERVERLIST}" ]]; then
|
|
if [[ ! -f "${SERVERLIST}" ]]; then
|
|
|
- echo "ERROR: ${SERVERLIST} not found. Run from the repository root."
|
|
|
|
|
- exit 1
|
|
|
|
|
|
|
+ echo "ERROR: ${SERVERLIST} not found. Run from the repository root."
|
|
|
|
|
+ exit 1
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
declare -A EXISTING_COLORS=()
|
|
declare -A EXISTING_COLORS=()
|
|
@@ -31,20 +31,20 @@ declare -A EXISTING_NAMES=()
|
|
|
# Fetch all existing game label metadata once (up to 1000) and cache locally.
|
|
# Fetch all existing game label metadata once (up to 1000) and cache locally.
|
|
|
echo "Fetching existing labels..."
|
|
echo "Fetching existing labels..."
|
|
|
while IFS=$'\t' read -r NAME COLOR DESCRIPTION; do
|
|
while IFS=$'\t' read -r NAME COLOR DESCRIPTION; do
|
|
|
- [[ -n "${NAME}" ]] || continue
|
|
|
|
|
- EXISTING_COLORS["${NAME}"]="${COLOR}"
|
|
|
|
|
- EXISTING_DESCRIPTIONS["${NAME}"]="${DESCRIPTION}"
|
|
|
|
|
- EXISTING_NAMES["$(normalize_label "${NAME}")"]="${NAME}"
|
|
|
|
|
|
|
+ [[ -n "${NAME}" ]] || continue
|
|
|
|
|
+ EXISTING_COLORS["${NAME}"]="${COLOR}"
|
|
|
|
|
+ EXISTING_DESCRIPTIONS["${NAME}"]="${DESCRIPTION}"
|
|
|
|
|
+ EXISTING_NAMES["$(normalize_label "${NAME}")"]="${NAME}"
|
|
|
done < <(
|
|
done < <(
|
|
|
- gh label list --limit 1000 --json name,color,description ${REPO:+--repo "$REPO"} \
|
|
|
|
|
- | jq -r '.[] | select(.name | startswith("game: ")) | [.name, .color, (.description // "")] | @tsv'
|
|
|
|
|
|
|
+ gh label list --limit 1000 --json name,color,description ${REPO:+--repo "$REPO"} \
|
|
|
|
|
+ | jq -r '.[] | select(.name | startswith("game: ")) | [.name, .color, (.description // "")] | @tsv'
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
# Parse unique game names from the CSV (column 3, skip header).
|
|
# Parse unique game names from the CSV (column 3, skip header).
|
|
|
mapfile -t GAMES < <(
|
|
mapfile -t GAMES < <(
|
|
|
- tail -n +2 "${SERVERLIST}" \
|
|
|
|
|
- | cut -d',' -f3 \
|
|
|
|
|
- | sort -u
|
|
|
|
|
|
|
+ tail -n +2 "${SERVERLIST}" \
|
|
|
|
|
+ | cut -d',' -f3 \
|
|
|
|
|
+ | sort -u
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
CREATED=0
|
|
CREATED=0
|
|
@@ -52,35 +52,35 @@ UPDATED=0
|
|
|
UNCHANGED=0
|
|
UNCHANGED=0
|
|
|
|
|
|
|
|
for GAME in "${GAMES[@]}"; do
|
|
for GAME in "${GAMES[@]}"; do
|
|
|
- LABEL="${LABEL_PREFIX}${GAME}"
|
|
|
|
|
- DESCRIPTION="Issues related to ${GAME}"
|
|
|
|
|
- NORMALIZED_LABEL="$(normalize_label "${LABEL}")"
|
|
|
|
|
|
|
+ LABEL="${LABEL_PREFIX}${GAME}"
|
|
|
|
|
+ DESCRIPTION="Issues related to ${GAME}"
|
|
|
|
|
+ NORMALIZED_LABEL="$(normalize_label "${LABEL}")"
|
|
|
|
|
|
|
|
- if [[ -v EXISTING_NAMES["${NORMALIZED_LABEL}"] ]]; then
|
|
|
|
|
- CURRENT_LABEL="${EXISTING_NAMES["${NORMALIZED_LABEL}"]}"
|
|
|
|
|
- CURRENT_COLOR="${EXISTING_COLORS["${CURRENT_LABEL}"]}"
|
|
|
|
|
- CURRENT_DESCRIPTION="${EXISTING_DESCRIPTIONS["${CURRENT_LABEL}"]}"
|
|
|
|
|
|
|
+ if [[ -v EXISTING_NAMES["${NORMALIZED_LABEL}"] ]]; then
|
|
|
|
|
+ CURRENT_LABEL="${EXISTING_NAMES["${NORMALIZED_LABEL}"]}"
|
|
|
|
|
+ CURRENT_COLOR="${EXISTING_COLORS["${CURRENT_LABEL}"]}"
|
|
|
|
|
+ CURRENT_DESCRIPTION="${EXISTING_DESCRIPTIONS["${CURRENT_LABEL}"]}"
|
|
|
|
|
|
|
|
- if [[ "${CURRENT_LABEL}" != "${LABEL}" || "${CURRENT_COLOR}" != "${LABEL_COLOR}" || "${CURRENT_DESCRIPTION}" != "${DESCRIPTION}" ]]; then
|
|
|
|
|
- echo " update ${LABEL}"
|
|
|
|
|
- gh label edit "${CURRENT_LABEL}" \
|
|
|
|
|
- --name "${LABEL}" \
|
|
|
|
|
- --color "${LABEL_COLOR}" \
|
|
|
|
|
- --description "${DESCRIPTION}" \
|
|
|
|
|
- ${REPO:+--repo "$REPO"}
|
|
|
|
|
- (( UPDATED++ )) || true
|
|
|
|
|
- else
|
|
|
|
|
- echo " ok ${LABEL}"
|
|
|
|
|
- (( UNCHANGED++ )) || true
|
|
|
|
|
- fi
|
|
|
|
|
- else
|
|
|
|
|
- echo " create ${LABEL}"
|
|
|
|
|
- gh label create "${LABEL}" \
|
|
|
|
|
- --color "${LABEL_COLOR}" \
|
|
|
|
|
- --description "${DESCRIPTION}" \
|
|
|
|
|
- ${REPO:+--repo "$REPO"}
|
|
|
|
|
- (( CREATED++ )) || true
|
|
|
|
|
- fi
|
|
|
|
|
|
|
+ if [[ "${CURRENT_LABEL}" != "${LABEL}" || "${CURRENT_COLOR}" != "${LABEL_COLOR}" || "${CURRENT_DESCRIPTION}" != "${DESCRIPTION}" ]]; then
|
|
|
|
|
+ echo " update ${LABEL}"
|
|
|
|
|
+ gh label edit "${CURRENT_LABEL}" \
|
|
|
|
|
+ --name "${LABEL}" \
|
|
|
|
|
+ --color "${LABEL_COLOR}" \
|
|
|
|
|
+ --description "${DESCRIPTION}" \
|
|
|
|
|
+ ${REPO:+--repo "$REPO"}
|
|
|
|
|
+ ((UPDATED++)) || true
|
|
|
|
|
+ else
|
|
|
|
|
+ echo " ok ${LABEL}"
|
|
|
|
|
+ ((UNCHANGED++)) || true
|
|
|
|
|
+ fi
|
|
|
|
|
+ else
|
|
|
|
|
+ echo " create ${LABEL}"
|
|
|
|
|
+ gh label create "${LABEL}" \
|
|
|
|
|
+ --color "${LABEL_COLOR}" \
|
|
|
|
|
+ --description "${DESCRIPTION}" \
|
|
|
|
|
+ ${REPO:+--repo "$REPO"}
|
|
|
|
|
+ ((CREATED++)) || true
|
|
|
|
|
+ fi
|
|
|
done
|
|
done
|
|
|
|
|
|
|
|
echo ""
|
|
echo ""
|