From 970236aa1b983ed6c40ee34ebd8fd353ca1ab447 Mon Sep 17 00:00:00 2001 From: Zeb Piasecki Date: Sat, 26 Jul 2025 10:14:05 -0400 Subject: [PATCH] chore: add support for non-main branches with create-orange --- packages/create-orange/src/index.ts | 21 ++++++++++++++++----- packages/create-orange/src/replace.ts | 4 ++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/packages/create-orange/src/index.ts b/packages/create-orange/src/index.ts index fb78c33..8bfa7af 100644 --- a/packages/create-orange/src/index.ts +++ b/packages/create-orange/src/index.ts @@ -20,13 +20,23 @@ async function main() { validate: (value) => value.length > 0, }); + const branch = process.argv[3] ?? "main"; + await command( { message: "Cloning template...", bin: "git", - args: ["clone", "https://github.com/zebp/orange-template.git", name], + args: [ + "clone", + "https://github.com/zebp/orange-template.git", + name, + "--depth", + "1", + "--branch", + branch, + ], }, - { clearPromptOnDone: true }, + { clearPromptOnDone: true } ); const replacements = { @@ -36,6 +46,7 @@ async function main() { rmSync(`${name}/.git`, { recursive: true, force: true }); replace(`${name}/package.json`, replacements); replace(`${name}/wrangler.jsonc`, replacements); + replace(`${name}/README.md`, replacements); const doInstallDeps = await confirm({ message: "Do you want to install dependencies?", @@ -50,7 +61,7 @@ async function main() { args: ["install"], cwd: name, }, - { clearPromptOnDone: true }, + { clearPromptOnDone: true } ); } @@ -64,7 +75,7 @@ async function main() { args: ["init"], cwd: name, }, - { clearPromptOnDone: true }, + { clearPromptOnDone: true } ); execSync("git add .", { cwd: name }); @@ -76,7 +87,7 @@ async function main() { args: ["commit", "-m", "Initial commit"], cwd: name, }, - { clearPromptOnDone: true }, + { clearPromptOnDone: true } ); } diff --git a/packages/create-orange/src/replace.ts b/packages/create-orange/src/replace.ts index 6b1e313..87b3278 100644 --- a/packages/create-orange/src/replace.ts +++ b/packages/create-orange/src/replace.ts @@ -1,6 +1,10 @@ import * as fs from "node:fs"; export function replace(path: string, replacements: Record) { + if (!fs.existsSync(path)) { + return; + } + let contents = fs.readFileSync(path, "utf-8"); for (const [key, value] of Object.entries(replacements)) {