diff --git a/src/create/createWithOptions.ts b/src/create/createWithOptions.ts index 48df817bc..aad196a57 100644 --- a/src/create/createWithOptions.ts +++ b/src/create/createWithOptions.ts @@ -16,7 +16,7 @@ export async function createWithOptions({ github, options }: GitHubAndOptions) { [ "Writing structure", async () => { - await writeStructure(options); + await writeStructure(options, "create"); }, ], [ diff --git a/src/migrate/migrateWithOptions.ts b/src/migrate/migrateWithOptions.ts index a7ddeb074..803f8a5cb 100644 --- a/src/migrate/migrateWithOptions.ts +++ b/src/migrate/migrateWithOptions.ts @@ -19,7 +19,7 @@ export async function migrateWithOptions({ [ "Writing structure", async () => { - await writeStructure(options); + await writeStructure(options, "migrate"); }, ], [ diff --git a/src/steps/writing/creation/index.ts b/src/steps/writing/creation/index.ts index 7fb3040a7..4b2ac3f71 100644 --- a/src/steps/writing/creation/index.ts +++ b/src/steps/writing/creation/index.ts @@ -1,3 +1,4 @@ +import { Mode } from "../../../bin/mode.js"; import { Options } from "../../../shared/types.js"; import { Structure } from "../types.js"; import { createDotGitHub } from "./dotGitHub/index.js"; @@ -6,12 +7,15 @@ import { createDotVSCode } from "./dotVSCode.js"; import { createRootFiles } from "./rootFiles.js"; import { createSrc } from "./src.js"; -export async function createStructure(options: Options): Promise { +export async function createStructure( + options: Options, + mode: Mode, +): Promise { return { ".github": await createDotGitHub(options), ".husky": createDotHusky(), ".vscode": await createDotVSCode(options), - src: await createSrc(options), + ...(mode !== "migrate" && { src: await createSrc(options) }), ...(await createRootFiles(options)), }; } diff --git a/src/steps/writing/writeStructure.ts b/src/steps/writing/writeStructure.ts index 6ac110464..71d2ab1ac 100644 --- a/src/steps/writing/writeStructure.ts +++ b/src/steps/writing/writeStructure.ts @@ -1,11 +1,12 @@ import { $ } from "execa"; +import { Mode } from "../../bin/mode.js"; import { Options } from "../../shared/types.js"; import { createStructure } from "./creation/index.js"; import { writeStructureWorker } from "./writeStructureWorker.js"; -export async function writeStructure(options: Options) { - await writeStructureWorker(await createStructure(options), "."); +export async function writeStructure(options: Options, mode: Mode) { + await writeStructureWorker(await createStructure(options, mode), "."); // https://github.com/JoshuaKGoldberg/create-typescript-app/issues/718 await $`chmod ug+x .husky/pre-commit`;