Log in
install.sh 48 lines · 1.5 KB · blame Source
S e53beb2fc3c7 feat: v0.4.0 β€” add `pas generate` command, bump 6 months ago
1
#!/usr/bin/env bash
2
set -euo pipefail
3
4
INSTALL_DIR="${HOME}/.local/bin"
5
BIN_NAME="pas"
6
7
echo "Building Pascal's Discrete Attractor (release)..."
8
cargo build -p attractor-cli --release
9
10
# Create install directory if needed
11
mkdir -p "${INSTALL_DIR}"
12
13
# Copy binary
14
cp "target/release/${BIN_NAME}" "${INSTALL_DIR}/${BIN_NAME}"
15
S c2d76a6876d8 feat: v0.4.1 β€” generate timeouts & commit steps, 6 months ago
16
# Sign with Apple Developer identity (prevents macOS SIGKILL on unsigned binaries)
17
if [[ -z "${CODESIGN_IDENTITY:-}" ]]; then
18
    echo "ERROR: CODESIGN_IDENTITY is not set."
19
    echo "Set it in your .envrc (see .envrc.example) or export it before running install.sh"
20
    exit 1
21
fi
22
if security find-identity -v -p codesigning 2>/dev/null | grep -q "${CODESIGN_IDENTITY}"; then
23
    codesign --force --sign "${CODESIGN_IDENTITY}" "${INSTALL_DIR}/${BIN_NAME}"
24
    echo "Signed ${BIN_NAME} with ${CODESIGN_IDENTITY}"
S e53beb2fc3c7 feat: v0.4.0 β€” add `pas generate` command, bump 6 months ago
25
else
26
    echo "WARNING: Signing identity not found, skipping codesign"
27
fi
28
29
echo "Installed ${BIN_NAME} to ${INSTALL_DIR}/${BIN_NAME}"
30
31
# Check if install dir is in PATH
32
if ! echo "${PATH}" | tr ':' '\n' | grep -qx "${INSTALL_DIR}"; then
33
    echo ""
34
    echo "WARNING: ${INSTALL_DIR} is not in your PATH."
35
    echo "Add it to your shell config:"
36
    echo ""
37
    echo "  # bash (~/.bashrc)"
38
    echo "  export PATH=\"${INSTALL_DIR}:\${PATH}\""
39
    echo ""
40
    echo "  # zsh (~/.zshrc)"
41
    echo "  export PATH=\"${INSTALL_DIR}:\${PATH}\""
42
    echo ""
43
    echo "  # fish (~/.config/fish/config.fish)"
44
    echo "  fish_add_path ${INSTALL_DIR}"
45
fi
46
47
echo ""
48
"${INSTALL_DIR}/${BIN_NAME}" --version