Skip to content

Commit 234bc15

Browse files
committed
#MJS-18 added skip existing files
1 parent 37231cf commit 234bc15

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

cli.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ program
3434
.option('-t, --templates <templateDir>', 'directory where templates are located (defaults to internal nodejs templates)')
3535
.option('-b, --basedir <baseDir>', 'directory to use as the base when resolving local file references (defaults to OpenAPI file directory)')
3636
.option('-c, --curl', 'generate a curl scripts', false)
37+
.option('-s, --skipExistingFiles', 'skip existing files')
3738
.parse(process.argv);
3839

3940
if (!openapiFile) {
@@ -48,7 +49,7 @@ generator.generate({
4849
templates: program.templates ? path.resolve(process.cwd(), program.templates) : undefined,
4950
curl: program.curl,
5051
template,
51-
}).then(() => {
52+
skipExistingFiles: program.skipExistingFiles
5253
console.log(green('Done! ✨'));
5354
console.log(yellow('Check out your shiny new API at ') + magenta(program.output) + yellow('.'));
5455
}).catch(err => {

lib/generator.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const xfs = require('fs.extra');
1313
const randomName = require('project-name-generator');
1414
const registerPartial = require('./register-partial');
1515
const bundler = require('./bundler');
16+
const yellow = text => `\x1b[33m${text}\x1b[0m`;
1617

1718
const codegen = module.exports;
1819

@@ -46,10 +47,19 @@ const generateFile = options => new Promise((resolve, reject) => {
4647
const parsed_content = template(data);
4748
const template_path = path.relative(templates_dir, path.resolve(root, file_name));
4849
const generated_path = path.resolve(target_dir, template_path).replace(/.hbs$/, '');
49-
fs.writeFile(generated_path, parsed_content, 'utf8', (err) => {
50-
if (err) return reject(err);
50+
// WIP check here for existing?
51+
const skipFile = data.skipExistingFiles && fs.existsSync(generated_path);
52+
if (!skipFile) {
53+
fs.writeFile(generated_path, parsed_content, 'utf8', (err) => {
54+
if (err) return reject(err);
55+
resolve();
56+
});
57+
}
58+
else {
59+
console.warn(yellow(`Skipping file: ${generated_path}`));
5160
resolve();
52-
});
61+
}
62+
5363
} catch (e) {
5464
reject(e);
5565
}

0 commit comments

Comments
 (0)