From 855999b3a13d838ce00c8bdd1ff2342c3bd7bdeb Mon Sep 17 00:00:00 2001 From: cha0s Date: Sat, 10 Feb 2024 00:11:13 -0600 Subject: [PATCH] fix: failure handling --- packages/create-app/build/cli.js | 22 +++++++++++++++------- packages/create-fleck/build/cli.js | 1 + 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/packages/create-app/build/cli.js b/packages/create-app/build/cli.js index dc565c3..9a8db0a 100755 --- a/packages/create-app/build/cli.js +++ b/packages/create-app/build/cli.js @@ -33,13 +33,16 @@ const { try { await stat(destination); const error = new Error( - `@flecks/create-app: destination '${destination} already exists: aborting`, + `@flecks/create-app: destination '${destination}' already exists: aborting`, ); - error.code = 129; + error.code = 1; throw error; } - // eslint-disable-next-line no-empty - catch (error) {} + catch (error) { + if ('ENOENT' !== error.code) { + throw error; + } + } const fileTree = await move(name, join(__dirname, '..', 'template')); fileTree.pipe( 'build/flecks.yml', @@ -50,12 +53,17 @@ const { ); // Write the tree. await fileTree.writeTo(destination); - await install({cwd: destination, packageManager}); - await build({cwd: destination, packageManager}); + if (0 !== await install({cwd: destination, packageManager})) { + throw new Error('installation failed'); + } + if (0 !== await build({cwd: destination, packageManager})) { + throw new Error('build failed'); + } } catch (error) { // eslint-disable-next-line no-console - console.error(error); + console.error('creation failed:', error); + process.exitCode = 1; } }); await program.parseAsync(process.argv); diff --git a/packages/create-fleck/build/cli.js b/packages/create-fleck/build/cli.js index e663b5b..31ebaf1 100755 --- a/packages/create-fleck/build/cli.js +++ b/packages/create-fleck/build/cli.js @@ -92,6 +92,7 @@ const { catch (error) { // eslint-disable-next-line no-console console.error('creation failed:', error); + process.exitCode = 1; } }); await program.parseAsync(process.argv);