#!/bin/sh set -eu repo=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd -P) tmp=${TMPDIR:-/tmp}/ink-skills-smoke-$$ trap 'rm -rf "$tmp"' EXIT HUP INT TERM mkdir -p "$tmp/home" "$tmp/project" list=$($repo/bin/ink-skills list) printf '%s\n' "$list" | grep '^SKILL' >/dev/null printf '%s\n' "$list" | grep '^ink-cli' >/dev/null printf '%s\n' "$list" | grep '^configure-ink-agent' >/dev/null HOME=$tmp/home $repo/bin/ink-skills install ink-cli >"$tmp/install.tsv" grep "ink-cli.*linked" "$tmp/install.tsv" >/dev/null [ -L "$tmp/home/.ink/skills/ink-cli" ] [ "$(readlink "$tmp/home/.ink/skills/ink-cli")" = "$repo/skills/ink-cli" ] HOME=$tmp/home $repo/bin/ink-skills install ink-cli >"$tmp/reinstall.tsv" grep "ink-cli.*unchanged" "$tmp/reinstall.tsv" >/dev/null mkdir -p "$tmp/home/.ink/skills/configure-ink-agent" if HOME=$tmp/home $repo/bin/ink-skills install configure-ink-agent >/dev/null 2>"$tmp/collision.err"; then echo 'expected collision refusal' >&2 exit 1 fi grep 'refusing existing path' "$tmp/collision.err" >/dev/null HOME=$tmp/home $repo/bin/ink-skills install --project "$tmp/project" create-ink-agent-cli-tool >"$tmp/project.tsv" [ -L "$tmp/project/.ink/skills/create-ink-agent-cli-tool" ] grep "create-ink-agent-cli-tool.*linked" "$tmp/project.tsv" >/dev/null printf 'ok\n'