feat: add bin/setup bootstrap script and update README installation docs

- bin/setup: curl-pipeable installer — re-execs with bash, detects OS,
  installs git (apt/xcode-select), clones dotfiles into ~, runs arty deps,
  installs arty zsh completion, prints next steps; fully idempotent
- README.md: replace Quick Start with Installation one-liner, add step table,
  After Installation and Manual Setup sections; fix stale ~/scripts reference
- .gitignore: whitelist bin/setup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
valknarandClaude Sonnet 4.6 committed 2026-06-22 15:57:45 +02:00
1 parent cfee542f35
commit 7e16a6475b
3 files changed
+356 -10

No files matched your search

+46 -10
View File
@@ -46,18 +46,53 @@
---
## QUICK START RITUAL
## INSTALLATION
### Summoning the Environment
### One-liner bootstrap
```bash
# Clone this unholy repository
git init && git remote add origin ssh://git@dev.pivoine.art/valknar/home.git
git fetch && git reset --hard origin/main
git branch --set-upstream-to=origin/main main
curl https://dev.pivoine.art/valknar/home/raw/branch/main/bin/setup -sSf | sh
```
# Clone scripts repository
git clone ssh://git@dev.pivoine.art/valknar/scripts.git ~/scripts
**Prerequisites:** `curl` or `wget` · `sh`/`bash` · `sudo` *(only needed on Debian/Ubuntu if git is missing)*
### What the setup script does
| Step | Action |
|------|--------|
| 1 | Detects OS (Debian/Ubuntu, macOS, other Linux) |
| 2 | Installs `git` if missing — `apt-get` on Debian/Ubuntu, `xcode-select` on macOS |
| 3 | Clones this repo into `~` via HTTPS — or `git pull` if already present *(idempotent)* |
| 4 | Runs `arty deps` — clones nvm, rbenv, pyenv, oh-my-zsh, powerlevel10k, zsh plugins |
| 5 | Installs `arty` zsh completion to `~/.zsh/completions/_arty` |
| 6 | Prints next steps |
### After installation
```bash
exec zsh # start a new shell session
p10k configure # first time: configure the Powerlevel10k prompt
arty ssh:keygen # generate an SSH key, then add it at https://dev.pivoine.art
# switch the dotfiles remote from HTTPS to SSH (after key is set up)
git -C ~ remote set-url origin ssh://git@dev.pivoine.art/valknar/home.git
```
---
## MANUAL SETUP
> The one-liner above handles all of this automatically.
```bash
cd ~
git init
git remote add origin https://dev.pivoine.art/valknar/home.git
git fetch && git checkout -f -t origin/main
git config status.showUntrackedFiles no
arty deps
```
---
@@ -98,9 +133,10 @@ arty docker:install # Docker Engine with user group
### Custom Scripts
Scripts in `~/scripts/` are loaded via PATH. They live in their own repo: `git@dev.pivoine.art:valknar/scripts.git`.
Scripts live in `~/bin/` and are tracked in this repo.
Available scripts: `stacks.sh` (Docker Compose stack manager), `arty.sh` (repository orchestration).
- **`arty`** — repository orchestration, reads `arty.yml`
- **`stacks`** — Docker Compose stack manager for `~/stacks`
---