mirror of
https://github.com/FranP-code/create-better-t-stack.git
synced 2025-10-12 23:52:15 +00:00
add Turso database setup functionality to project creation
This commit is contained in:
@@ -6,47 +6,42 @@ import { setupTurso } from "./helpers/db-setup";
|
|||||||
import type { ProjectOptions } from "./types";
|
import type { ProjectOptions } from "./types";
|
||||||
|
|
||||||
export async function createProject(options: ProjectOptions) {
|
export async function createProject(options: ProjectOptions) {
|
||||||
const spinner = ora("Creating project directory...").start();
|
const spinner = ora("Creating project directory...").start();
|
||||||
const projectDir = path.resolve(process.cwd(), options.projectName);
|
const projectDir = path.resolve(process.cwd(), options.projectName);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await fs.ensureDir(projectDir);
|
await fs.ensureDir(projectDir);
|
||||||
spinner.succeed();
|
spinner.succeed();
|
||||||
|
|
||||||
spinner.start("Cloning template repository...");
|
spinner.start("Cloning template repository...");
|
||||||
await execa("git", [
|
await execa("git", [
|
||||||
"clone",
|
"degit",
|
||||||
"--depth",
|
"https://github.com/AmanVarshney01/Better-T-Stack.git",
|
||||||
"1",
|
projectDir,
|
||||||
"https://github.com/AmanVarshney01/Better-T-Stack.git",
|
]);
|
||||||
projectDir,
|
spinner.succeed();
|
||||||
]);
|
|
||||||
spinner.succeed();
|
|
||||||
spinner.start("Removing template .git folder...");
|
|
||||||
await fs.remove(path.join(projectDir, ".git"));
|
|
||||||
spinner.succeed();
|
|
||||||
|
|
||||||
if (options.git) {
|
if (options.git) {
|
||||||
spinner.start("Initializing git repository...");
|
spinner.start("Initializing git repository...");
|
||||||
await execa("git", ["init"], { cwd: projectDir });
|
await execa("git", ["init"], { cwd: projectDir });
|
||||||
spinner.succeed();
|
spinner.succeed();
|
||||||
}
|
}
|
||||||
|
|
||||||
spinner.start("Installing dependencies...");
|
spinner.start("Installing dependencies...");
|
||||||
await execa("bun", ["install"], { cwd: projectDir });
|
await execa("bun", ["install"], { cwd: projectDir });
|
||||||
spinner.succeed();
|
spinner.succeed();
|
||||||
|
|
||||||
if (options.database === "libsql") {
|
if (options.database === "libsql") {
|
||||||
await setupTurso(projectDir);
|
await setupTurso(projectDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("\n✨ Project created successfully!\n");
|
console.log("\n✨ Project created successfully!\n");
|
||||||
console.log("Next steps:");
|
console.log("Next steps:");
|
||||||
console.log(` cd ${options.projectName}`);
|
console.log(` cd ${options.projectName}`);
|
||||||
console.log(" bun dev");
|
console.log(" bun dev");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
spinner.fail("Failed to create project");
|
spinner.fail("Failed to create project");
|
||||||
console.error(error);
|
console.error(error);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user