From 8a77febd7ea07ee0b6cdde23cfc0fcb871f74290 Mon Sep 17 00:00:00 2001 From: fgrreloaded Date: Tue, 11 Feb 2025 20:27:23 +0530 Subject: [PATCH] add Turso database setup functionality to project creation --- src/create-project.ts | 69 ++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 37 deletions(-) diff --git a/src/create-project.ts b/src/create-project.ts index 04f94e5..b7ac531 100644 --- a/src/create-project.ts +++ b/src/create-project.ts @@ -6,47 +6,42 @@ import { setupTurso } from "./helpers/db-setup"; import type { ProjectOptions } from "./types"; export async function createProject(options: ProjectOptions) { - const spinner = ora("Creating project directory...").start(); - const projectDir = path.resolve(process.cwd(), options.projectName); + const spinner = ora("Creating project directory...").start(); + const projectDir = path.resolve(process.cwd(), options.projectName); - try { - await fs.ensureDir(projectDir); - spinner.succeed(); + try { + await fs.ensureDir(projectDir); + spinner.succeed(); - spinner.start("Cloning template repository..."); - await execa("git", [ - "clone", - "--depth", - "1", - "https://github.com/AmanVarshney01/Better-T-Stack.git", - projectDir, - ]); - spinner.succeed(); - spinner.start("Removing template .git folder..."); - await fs.remove(path.join(projectDir, ".git")); - spinner.succeed(); + spinner.start("Cloning template repository..."); + await execa("git", [ + "degit", + "https://github.com/AmanVarshney01/Better-T-Stack.git", + projectDir, + ]); + spinner.succeed(); - if (options.git) { - spinner.start("Initializing git repository..."); - await execa("git", ["init"], { cwd: projectDir }); - spinner.succeed(); - } + if (options.git) { + spinner.start("Initializing git repository..."); + await execa("git", ["init"], { cwd: projectDir }); + spinner.succeed(); + } - spinner.start("Installing dependencies..."); - await execa("bun", ["install"], { cwd: projectDir }); - spinner.succeed(); + spinner.start("Installing dependencies..."); + await execa("bun", ["install"], { cwd: projectDir }); + spinner.succeed(); - if (options.database === "libsql") { - await setupTurso(projectDir); - } + if (options.database === "libsql") { + await setupTurso(projectDir); + } - console.log("\n✨ Project created successfully!\n"); - console.log("Next steps:"); - console.log(` cd ${options.projectName}`); - console.log(" bun dev"); - } catch (error) { - spinner.fail("Failed to create project"); - console.error(error); - process.exit(1); - } + console.log("\n✨ Project created successfully!\n"); + console.log("Next steps:"); + console.log(` cd ${options.projectName}`); + console.log(" bun dev"); + } catch (error) { + spinner.fail("Failed to create project"); + console.error(error); + process.exit(1); + } }