#!/usr/bin/env bash
# gstack-slug — output project slug and sanitized branch name
# Usage: eval $(gstack-slug)  → sets SLUG and BRANCH variables
# Or:    gstack-slug           → prints SLUG=... and BRANCH=... lines
set -euo pipefail
# tr -cd strips any shell metacharacters (;$`|&! etc) from git-derived values
# to prevent injection via eval $(gstack-slug). See: #133
SLUG=$(git remote get-url origin 2>/dev/null | sed 's|.*[:/]\([^/]*/[^/]*\)\.git$|\1|;s|.*[:/]\([^/]*/[^/]*\)$|\1|' | tr '/' '-' | tr -cd 'a-zA-Z0-9._-')
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null | tr '/' '-' | tr -cd 'a-zA-Z0-9._-')
echo "SLUG=$SLUG"
echo "BRANCH=$BRANCH"
