fix: check for nonexistent templates
This commit is contained in:
parent
4b899d2257
commit
88a8e7ae1a
1 changed files with 10 additions and 3 deletions
|
@ -81,11 +81,18 @@ export default async function copyTemplate(tmpl: string, ctx: Context) {
|
|||
} catch (err: any) {
|
||||
fs.rmdirSync(ctx.cwd);
|
||||
if (err.message.includes('404')) {
|
||||
await error('Error', `Template ${color.reset(tmpl)} ${color.dim('does not exist!')}`);
|
||||
throw new Error(`Template ${color.reset(tmpl)} ${color.dim('does not exist!')}`);
|
||||
} else {
|
||||
console.error(err.message);
|
||||
throw new Error(err.message);
|
||||
}
|
||||
ctx.exit(1);
|
||||
}
|
||||
|
||||
// It's possible the repo exists (ex. `withastro/astro`),
|
||||
// But the template route is invalid (ex. `withastro/astro/examples/DNE`).
|
||||
// `giget` doesn't throw for this case,
|
||||
// so check if the directory is still empty as a heuristic.
|
||||
if (fs.readdirSync(ctx.cwd).length === 0) {
|
||||
throw new Error(`Template ${color.reset(tmpl)} ${color.dim('is empty!')}`);
|
||||
}
|
||||
|
||||
// Post-process in parallel
|
||||
|
|
Loading…
Reference in a new issue