Files
Gitea-Tools/scripts/install-codex-workflow-skill.sh
T
sysadmin 44cf2a4ce8 feat: mount canonical gitea-workflow skill for Codex and MCP inventory (Closes #551)
Expose gitea-workflow / llm-project-workflow / git-pr-workflows as one
workflow router in mcp_list_project_skills, add preflight + Codex install
script, and document multi-runtime skill name parity.
2026-07-08 22:43:46 -04:00

83 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Install canonical Gitea workflow skill into Codex skills dir (#551).
# Symlinks the in-repo skills/llm-project-workflow package under the names
# gitea-workflow, llm-project-workflow, and git-pr-workflows.
set -euo pipefail
usage() {
cat <<'EOF'
usage: scripts/install-codex-workflow-skill.sh [--dry-run] [--skills-dir DIR]
Symlink the portable skills/llm-project-workflow package into the Codex
skills directory under the canonical names:
gitea-workflow
llm-project-workflow
git-pr-workflows
Defaults:
skills dir: $CODEX_HOME/skills or ~/.codex/skills
source: <repo>/skills/llm-project-workflow
EOF
}
dry_run=0
skills_dir=""
while [[ "${1:-}" == --* ]]; do
case "$1" in
--dry-run) dry_run=1 ;;
--skills-dir)
shift
skills_dir="${1:-}"
;;
--help|-h) usage; exit 0 ;;
*) usage >&2; exit 2 ;;
esac
shift
done
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
repo_root="$(cd "$script_dir/.." && pwd)"
source_skill="$repo_root/skills/llm-project-workflow"
if [[ ! -f "$source_skill/SKILL.md" ]]; then
echo "Error: missing $source_skill/SKILL.md" >&2
exit 1
fi
if [[ -z "$skills_dir" ]]; then
if [[ -n "${CODEX_HOME:-}" ]]; then
skills_dir="$CODEX_HOME/skills"
else
skills_dir="${HOME}/.codex/skills"
fi
fi
names=(gitea-workflow llm-project-workflow git-pr-workflows)
echo "source: $source_skill"
echo "codex skills dir: $skills_dir"
if [[ "$dry_run" -eq 0 ]]; then
mkdir -p "$skills_dir"
fi
for name in "${names[@]}"; do
target="$skills_dir/$name"
if [[ "$dry_run" -eq 1 ]]; then
echo "dry-run: ln -sfn $source_skill $target"
continue
fi
if [[ -e "$target" || -L "$target" ]]; then
if [[ -L "$target" ]]; then
rm -f "$target"
else
echo "Error: $target exists and is not a symlink (refuse to overwrite)" >&2
exit 1
fi
fi
ln -sfn "$source_skill" "$target"
echo "linked $target -> $source_skill"
done
echo "done. Restart Codex so skills reload."