Files

37 lines
950 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
if [ -n "${CLAWHUB_TOKEN:-}" ]; then
# executed from in ci
npx -y clawhub login --token "$CLAWHUB_TOKEN"
fi
for skill_dir in skills/*/; do
skill_name=$(basename "$skill_dir")
skill_file="${skill_dir}SKILL.md"
if [ ! -f "$skill_file" ]; then
echo "Skipping ${skill_name}: no SKILL.md found"
continue
fi
# Parse version from frontmatter
version=$(awk '/^---$/{c++; next} c==1 && /^[[:space:]]*version:/{gsub(/[" ]/, "", $2); print $2; exit}' "$skill_file")
if [ -z "$version" ] || [ "$version" = "0.0.0" ]; then
echo "Skipping ${skill_name}: no version or version is 0.0.0"
continue
fi
echo "Publishing ${skill_name} v${version}"
npx -y clawhub publish "$PWD/${skill_dir}" --version "$version" || true
if [ -n "${CLAWHUB_TOKEN:-}" ]; then
# executed from in ci
continue
fi
# rate limits: 5 skills per hour / 20 skills per day
sleep 3600
done