| #!/usr/bin/env bash |
| set -euo pipefail |
|
|
| ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" |
| cd "$ROOT" |
|
|
| SPACE_REPO="${SPACE_REPO:-evalstate/hf-papers}" |
| COMMIT_MSG="${COMMIT_MSG:-sync: update community prompt v3 + eval harness}" |
| DRY_RUN="${DRY_RUN:-0}" |
|
|
| hf auth whoami >/dev/null |
|
|
| mapfile -t MODIFIED < <(git diff --name-only) |
| mapfile -t UNTRACKED < <(git ls-files --others --exclude-standard) |
| mapfile -t DELETED < <(git diff --name-only --diff-filter=D) |
|
|
| |
| ALL=() |
| for f in "${MODIFIED[@]}" "${UNTRACKED[@]}"; do |
| [[ -z "$f" ]] && continue |
| |
| if [[ "$f" == *"/__pycache__/"* ]]; then |
| continue |
| fi |
| if [[ "$f" == docs/hf_hub_prompt_ab/*/gpt-oss/raw/* ]]; then |
| continue |
| fi |
| if [[ "$f" == .fast-agent/sessions/* ]]; then |
| continue |
| fi |
| ALL+=("$f") |
| done |
|
|
| if [[ ${#ALL[@]} -eq 0 && ${#DELETED[@]} -eq 0 ]]; then |
| echo "[info] nothing to publish" |
| exit 0 |
| fi |
|
|
| cmd=(hf upload "$SPACE_REPO" . --repo-type space --commit-message "$COMMIT_MSG") |
|
|
| for f in "${ALL[@]}"; do |
| cmd+=(--include "$f") |
| done |
|
|
| for f in "${DELETED[@]}"; do |
| cmd+=(--delete "$f") |
| done |
|
|
| echo "[info] repo=$SPACE_REPO" |
| echo "[info] includes=${#ALL[@]} deletes=${#DELETED[@]}" |
| printf ' + %s\n' "${ALL[@]:0:20}" |
| if [[ ${#ALL[@]} -gt 20 ]]; then |
| echo " ..." |
| fi |
|
|
| if [[ "$DRY_RUN" == "1" ]]; then |
| echo "[dry-run] ${cmd[*]}" |
| exit 0 |
| fi |
|
|
| "${cmd[@]}" |
|
|
| echo "[done] published to https://huggingface.co/spaces/${SPACE_REPO}" |
|
|