Selaa lähdekoodia

feat: add `--no-clobber` option to CLI (#3025)

Co-authored-by: skoriop <karthikp.ivy@gmail.com>
Co-authored-by: Steven <steven@ceriously.com>
Karthik Prakash 1 vuosi sitten
vanhempi
commit
b8adee7f7c
2 muutettua tiedostoa jossa 13 lisäystä ja 1 poistoa
  1. 9 0
      bin/main.js
  2. 4 1
      man/marked.1.md

+ 9 - 0
bin/main.js

@@ -62,6 +62,7 @@ export async function main(nodeProcess) {
     let tokens;
     let config;
     let opt;
+    let noclobber;
 
     function getArg() {
       let arg = argv.shift();
@@ -114,6 +115,10 @@ export async function main(nodeProcess) {
         case '--config':
           config = argv.shift();
           break;
+        case '-n':
+        case '--no-clobber':
+          noclobber = true;
+          break;
         case '-h':
         case '--help':
           return await help();
@@ -216,6 +221,10 @@ export async function main(nodeProcess) {
       : await marked.parse(data, options);
 
     if (output) {
+      if (noclobber && await fileExists(output)) {
+        nodeProcess.stderr.write('marked: output file \'' + output + '\' already exists, disable the \'-n\' / \'--no-clobber\' flag to overwrite\n');
+        nodeProcess.exit(1);
+      }
       return await writeFile(output, html);
     }
 

+ 4 - 1
man/marked.1.md

@@ -2,7 +2,7 @@
 
 ## SYNOPSIS
 
-`marked` [`-o` <output file>] [`-i` <input file>] [`-s` <markdown string>] [`-c` <config file>] [`--help`] [`--version`] [`--tokens`] [`--pedantic`] [`--gfm`] [`--breaks`] [`--no-etc...`] [`--silent`] [filename]
+`marked` [`-o` <output file>] [`-i` <input file>] [`-s` <markdown string>] [`-c` <config file>] [`--help`] [`--version`] [`--tokens`] [`--no-clobber`] [`--pedantic`] [`--gfm`] [`--breaks`] [`--no-etc...`] [`--silent`] [filename]
 
 ## DESCRIPTION
 
@@ -45,6 +45,9 @@ Specify config file to use instead of the default `~/.marked.json` or `~/.marked
 * -t, --tokens
 Output a token list instead of html.
 
+* -n, --no-clobber
+Do not overwrite `output` if it exists.
+
 * --pedantic
 Conform to obscure parts of markdown.pl as much as possible.
 Don't fix original markdown bugs.