Skip to content
This repository was archived by the owner on Sep 10, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .changeset/lucky-moons-shake.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ Git and the GitHub Actions workflows are questions too, defaulted yes and no res

`--ci` is gone. It read as "I am running in CI" — which is what it means in `npm ci`, in Jest, and in this CLI's own `isCI` check — while actually meaning "emit GitHub Actions workflows". It is now `--workflows` / `--no-workflows`, and the subcommand is `add workflows`. `add ci` still works, undocumented, because it is written into the README of every project already scaffolded.

An occupied destination is refused **before** the first question rather than by `scaffoldGame` after the last one. Being told the directory was taken after carefully giving an organization is the same insult as being told about `flutterfire` after two minutes of Flutter and pub. The message names the first three things standing in the way, which usually settles whether the path was mistyped or already scaffolded once — where "not empty" only invites an `ls`. There is deliberately no offer to delete it: every other question here is reversible and that one is not. A directory that exists and is *empty* is no longer refused at all, since people make one out of habit and cloning a repository with no first commit leaves exactly that.
An occupied destination is refused **before** the first question rather than by `scaffoldGame` after the last one. Being told the directory was taken after carefully giving an organization is the same insult as being told about `flutterfire` after two minutes of Flutter and pub. The message names the first three things standing in the way, which usually settles whether the path was mistyped or already scaffolded once — where "not empty" only invites an `ls`. There is deliberately no offer to delete it: every other question here is reversible and that one is not. A directory that exists and is *empty* is no longer refused at all, since people make one out of habit. A cloned repository is not that case — `.git` stands in the way like any other entry, and the message names it — so `git clone` then scaffold still means scaffolding beside it and moving the result in.

Also adds `--version`, and stops asking about git at all when the destination is already inside a repository, since the scaffold declines to nest one there whatever it is told.
12 changes: 8 additions & 4 deletions packages/create-eigen-game/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -630,10 +630,14 @@ function signedOut(probe: Probe): boolean {
* Why this destination cannot be scaffolded into, said as a whole message, or
* `undefined` when there is nothing in the way.
*
* A directory that exists and is *empty* is not in the way. People make one out
* of habit, and cloning a repository that has not had its first commit yet
* leaves exactly that — so it is removed and rewritten rather than refused over
* nothing. Anything with contents in it is refused.
* A directory that exists and is *empty* is not in the way — people make one
* out of habit — so it is removed and rewritten rather than refused over
* nothing. Anything with contents in it is refused, and a cloned repository is
* not an exception: `.git` is in the way like any other entry, and the message
* names it. Publishing into one would mean parking `.git`, renaming staging
* over the top and putting it back, with a failure in the middle able to
* orphan a remote — which is a lot of care to spend on a flow that has a
* one-line alternative.
*
* Refused, and deliberately not offered as a "remove it and continue?"
* question, which is where several scaffolders in this family go. This one
Expand Down