Files
Move/scripts/dev-setup.sh
T
nokeo08 c9645b374c Move installer scripts into scripts/ directory
- install.sh, uninstall.sh, dev-setup.sh now live under scripts/.
- dev-setup.sh's 'cd $(dirname $0)' updated to '.../..' so it lands
  at the repo root regardless of CWD.
- README install/uninstall curl URLs now reference scripts/<name>.sh.
- README contributor section and Files table updated to match.

Behavior is unchanged. The curl one-liner URL changes from
.../master/install.sh to .../master/scripts/install.sh; users following
the pre-v1.0.2 README will get a 404 from the old URL.
2026-06-17 12:17:32 -05:00

49 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# dev-setup.sh - contributor bootstrap for the `move` repo.
#
# Use this when you have cloned the repo and want a working development
# environment. End users should use `install.sh` (curl-pipeable) instead.
#
# Verifies Bun is installed, then runs `bun install` to fetch dependencies
# (notably `@nut-tree-fork/nut-js`, which ships prebuilt native binaries
# for darwin-arm64/x64, linux, and windows).
#
# This script is idempotent: re-running it just re-resolves the dependency
# tree against the existing `bun.lock`.
# Fail fast on any error, unset variable, or failed pipe stage.
set -euo pipefail
# Operate at the repo root regardless of the caller's CWD. This script lives
# under scripts/, so pop up one level to land at the project root before
# running bun install.
cd "$(dirname "$0")/.."
echo "==> Checking for Bun..."
if ! command -v bun >/dev/null 2>&1; then
# Hard error rather than auto-install: keep the script's behavior
# predictable and let the user pick their own install method.
echo "Error: bun is not installed." >&2
echo " Install it from https://bun.sh (e.g. 'brew install oven-sh/bun/bun') and re-run." >&2
exit 1
fi
echo " bun $(bun --version)"
echo "==> Installing dependencies..."
bun install
echo
echo "Done. Dev workflow:"
echo " - 'bun run start' to run from the source tree."
echo " - 'bun link' to install a global 'move' command pointed at this checkout."
echo "End-user installer is install.sh (curl-pipeable from Gitea)."
# macOS gates synthetic mouse events behind the Accessibility permission.
# Without this hint, the first run silently fails to move the cursor and
# the user has no obvious next step.
if [[ "$(uname)" == "Darwin" ]]; then
echo "Note: macOS will prompt for Accessibility permission on first mouse move."
echo " Grant it under System Settings > Privacy & Security > Accessibility."
fi