From b1f697d8422300994636ba16cf80a463423ec244 Mon Sep 17 00:00:00 2001 From: Joshua Hanson Date: Tue, 29 Dec 2015 18:46:12 -0500 Subject: [PATCH] Allow symlinked output directories --- bin/node-sass | 2 +- test/cli.js | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/bin/node-sass b/bin/node-sass index ef3d6ad22..5f8fc57a3 100755 --- a/bin/node-sass +++ b/bin/node-sass @@ -109,7 +109,7 @@ function isDirectory(filePath) { var isDir = false; try { var absolutePath = path.resolve(filePath); - isDir = fs.lstatSync(absolutePath).isDirectory(); + isDir = fs.statSync(absolutePath).isDirectory(); } catch (e) { isDir = e.code === 'ENOENT'; } diff --git a/test/cli.js b/test/cli.js index b377bd602..ed2b843ab 100644 --- a/test/cli.js +++ b/test/cli.js @@ -588,6 +588,24 @@ describe('cli', function() { }); }); + it('should not error if output directory is a symlink', function(done) { + var outputDir = fixture('input-directory/css'); + var src = fixture('input-directory/sass'); + var symlink = fixture('symlinked-css'); + fs.mkdirSync(outputDir); + fs.symlinkSync(outputDir, symlink); + var bin = spawn(cli, [src, '--output', symlink]); + + bin.once('close', function() { + var files = fs.readdirSync(outputDir).sort(); + assert.deepEqual(files, ['one.css', 'two.css', 'nested'].sort()); + var nestedFiles = fs.readdirSync(path.join(outputDir, 'nested')); + assert.deepEqual(nestedFiles, ['three.css']); + rimraf.sync(outputDir); + fs.unlinkSync(symlink); + done(); + }); + }); }); describe('node-sass in.scss --output path/to/file/out.css', function() {