Mkdirp when using -o option

Closes #270
This commit is contained in:
Liam Newman 2013-06-03 13:46:08 -07:00
parent 70a46754d2
commit e3c02e1f27
5 changed files with 25 additions and 1 deletions

View File

@ -39,6 +39,7 @@ var debug = process.env.DEBUG_JSBEAUTIFY || process.env.JSBEAUTIFY_DEBUG
var fs = require('fs'),
cc = require('config-chain'),
beautify = require('../index'),
mkdirp = require('mkdirp'),
nopt = require('nopt'),
path = require('path'),
knownOpts = {
@ -238,6 +239,8 @@ function processInputSync(filepath) {
});
}
else {
var dir = path.dirname(outfile);
mkdirp.sync(dir);
data = fs.readFileSync(filepath, 'utf8');
makePretty(data, config, outfile, writePretty);
}

View File

@ -77,6 +77,12 @@ test_cli_js_beautify()
exit 1
}
rm -rf /tmp/js-beautify-mkdir
$CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js $SCRIPT_DIR/../bin/js-beautify.js && diff $SCRIPT_DIR/../bin/js-beautify.js /tmp/js-beautify-mkdir/js-beautify.js || {
echo "js-beautify output for $SCRIPT_DIR/../bin/js-beautify.js should have been created in /tmp/js-beautify-mkdir/js-beautify.js."
exit 1
}
$CLI_SCRIPT $SCRIPT_DIR/../bin/css-beautify.js | diff -q $SCRIPT_DIR/../bin/css-beautify.js - && {
echo "js-beautify output for $SCRIPT_DIR/../bin/css-beautify.js was expected to be different."
exit 1

View File

@ -43,6 +43,7 @@
"license": "MIT",
"dependencies": {
"config-chain": "~1.1.5",
"mkdirp": "0.3.5",
"nopt": "~2.1.1"
},
"devDependencies": {

View File

@ -1,5 +1,6 @@
from __future__ import print_function
import sys
import os
import getopt
import re
import string
@ -1324,7 +1325,13 @@ class Beautifier:
self.append_newline()
def mkdir_p(path):
try:
os.makedirs(path)
except OSError as exc: # Python >2.5
if exc.errno == errno.EEXIST and os.path.isdir(path):
pass
else: raise
def main():
@ -1393,6 +1400,7 @@ def main():
if outfile == 'stdout':
print(beautify_file(file, js_options))
else:
mkdir_p(os.path.dirname(outfile))
with open(outfile, 'w') as f:
f.write(beautify_file(file, js_options) + '\n')
except Exception as ex:

View File

@ -77,6 +77,12 @@ test_cli_js_beautify()
exit 1
}
rm -rf /tmp/js-beautify-mkdir
$CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js $SCRIPT_DIR/../../../js/bin/js-beautify.js && diff $SCRIPT_DIR/../../../js/bin/js-beautify.js /tmp/js-beautify-mkdir/js-beautify.js || {
echo "js-beautify output for $SCRIPT_DIR/../bin/js-beautify.js should have been created in /tmp/js-beautify-mkdir/js-beautify.js."
exit 1
}
$CLI_SCRIPT $SCRIPT_DIR/../../../js/bin/css-beautify.js | diff -q $SCRIPT_DIR/../../../js/bin/css-beautify.js - && {
echo "js-beautify output for $SCRIPT_DIR/../bin/css-beautify.js was expected to be different."
exit 1