Init: RoggioApp Architecture, Prisma Schema, API MVP
This commit is contained in:
+90
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env node
|
||||
import { i as relative } from "./_chunks/libs/nypm.mjs";
|
||||
import { r as startShell, t as downloadTemplate } from "./_chunks/giget.mjs";
|
||||
import { n as runMain, t as defineCommand } from "./_chunks/libs/citty.mjs";
|
||||
//#endregion
|
||||
//#region src/cli.ts
|
||||
runMain(defineCommand({
|
||||
meta: {
|
||||
name: "giget",
|
||||
version: "3.1.2",
|
||||
description: "Download templates and git repositories with pleasure!"
|
||||
},
|
||||
args: {
|
||||
template: {
|
||||
type: "positional",
|
||||
required: true,
|
||||
description: "Template name or a URI describing provider, repository, subdir, and branch/ref"
|
||||
},
|
||||
dir: {
|
||||
type: "positional",
|
||||
description: "A relative or absolute path where to extract the template",
|
||||
required: false
|
||||
},
|
||||
auth: {
|
||||
type: "string",
|
||||
description: "Custom Authorization token to use for downloading template. (Can be overridden with `GIGET_AUTH` environment variable)"
|
||||
},
|
||||
cwd: {
|
||||
type: "string",
|
||||
description: "Set current working directory to resolve dirs relative to it"
|
||||
},
|
||||
force: {
|
||||
type: "boolean",
|
||||
description: "Clone to existing directory even if exists"
|
||||
},
|
||||
forceClean: {
|
||||
type: "boolean",
|
||||
description: "Remove any existing directory or file recursively before cloning"
|
||||
},
|
||||
offline: {
|
||||
type: "boolean",
|
||||
description: "Do not attempt to download and use cached version"
|
||||
},
|
||||
preferOffline: {
|
||||
type: "boolean",
|
||||
description: "Use cache if exists otherwise try to download"
|
||||
},
|
||||
shell: {
|
||||
type: "boolean",
|
||||
description: "Open a new shell with the current working directory set to the cloned directory (experimental)"
|
||||
},
|
||||
install: {
|
||||
type: "boolean",
|
||||
description: "Install dependencies after cloning"
|
||||
},
|
||||
verbose: {
|
||||
type: "boolean",
|
||||
description: "Show verbose debugging info"
|
||||
}
|
||||
},
|
||||
run: async ({ args }) => {
|
||||
if (args.verbose) process.env.DEBUG = process.env.DEBUG || "true";
|
||||
let r;
|
||||
try {
|
||||
r = await downloadTemplate(args.template, {
|
||||
dir: args.dir,
|
||||
force: args.force,
|
||||
forceClean: args.forceClean,
|
||||
offline: args.offline,
|
||||
preferOffline: args.preferOffline,
|
||||
auth: args.auth,
|
||||
install: args.install
|
||||
});
|
||||
} catch (error) {
|
||||
if (args.verbose) console.error(error);
|
||||
else {
|
||||
const message = error instanceof Error ? error.message : `Failed to download ${args.template}: unknown error`;
|
||||
console.error(message);
|
||||
}
|
||||
process.exitCode = 1;
|
||||
return;
|
||||
}
|
||||
const _from = r.name || r.url;
|
||||
const _to = relative(process.cwd(), r.dir) || "./";
|
||||
console.log(`✨ Successfully cloned \`${_from}\` to \`${_to}\`\n`);
|
||||
if (args.shell) startShell(r.dir);
|
||||
}
|
||||
}));
|
||||
//#endregion
|
||||
export {};
|
||||
Reference in New Issue
Block a user