Skip to content

Revisit bootstrapping options and entrypoints #44

@kergoth

Description

@kergoth

Background

The script/bootstrap script was originally intended as a curl-based entrypoint for getting up and running with dotfiles:

  1. Install git, bash, curl, unzip
  2. Clone the repo
  3. Run setup

However, it has grown beyond its original scope and doesn't cleanly fit with the OS/root-level setup scripts.

Current State

  • script/bootstrap - User-level entrypoint, installs deps + chezmoi, runs bootstrap scripts
  • script/arch/setup-root - Root-level, creates user, sets up sudo
  • script/arch/os-install - Bare-metal installation
  • script/setup, script/setup-full, script/setup-system - User-level setup

Issues

  1. ArchWSL chicken-and-egg: Bootstrap can't run on fresh ArchWSL because pacman needs keyring init first, but bootstrap uses pacman -Sy to install git
  2. Root vs User divide: Bootstrap assumes a user exists with sudo access. On fresh systems (ArchWSL, bare-metal), you need to create the user first via setup-root
  3. Scope creep: Bootstrap does more than its comments describe
  4. pacman -Sy: Uses partial upgrade (should be -Syu)

Questions to Consider

  1. Should bootstrap handle keyring init for Arch/ArchWSL before installing git?
  2. Should there be a unified "smart" entrypoint that detects context (root vs user, fresh vs existing) and calls appropriate scripts?
  3. Should bootstrap stay focused on just "clone repo + install chezmoi" and leave all setup to explicit setup scripts?
  4. How should the wget-based flow work for systems without git (download setup-root directly)?

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions