From 473674ca5623ee1abea7bc695415eb8d3f738139 Mon Sep 17 00:00:00 2001 From: Giovanni Degiorgi Date: Tue, 24 May 2016 17:16:26 +0200 Subject: [PATCH] Added support for non Administrator CLI user In case of non-admin user instead of symlinkSync will just writeFileSync. --- lib/broccoli/broccoli-typescript.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/broccoli/broccoli-typescript.js b/lib/broccoli/broccoli-typescript.js index 87d395fb918a..8ab914c3ef0f 100644 --- a/lib/broccoli/broccoli-typescript.js +++ b/lib/broccoli/broccoli-typescript.js @@ -78,7 +78,12 @@ class BroccoliTypeScriptCompiler extends Plugin { this._fileRegistry[tsFilePath].outputs.forEach(absoluteFilePath => { const outputFilePath = absoluteFilePath.replace(this.cachePath, this.outputPath); fse.mkdirsSync(path.dirname(outputFilePath)); - fs.symlinkSync(absoluteFilePath, outputFilePath); + try { + fs.symlinkSync(absoluteFilePath, outputFilePath); + } catch (e) { + const conentStr = fs.readFileSync(absoluteFilePath); + fs.writeFileSync(outputFilePath, conentStr); + } }); } else { this._fileRegistry[tsFilePath].version = entry.mtime; @@ -203,7 +208,12 @@ class BroccoliTypeScriptCompiler extends Plugin { fs.writeFileSync(absoluteFilePath, content, FS_OPTS); fse.mkdirsSync(path.dirname(outputFilePath)); - fs.symlinkSync(absoluteFilePath, outputFilePath); + try { + fs.symlinkSync(absoluteFilePath, outputFilePath); + } catch (e) { + const conentStr = fs.readFileSync(absoluteFilePath); + fs.writeFileSync(outputFilePath, conentStr); + } } _addNewFileEntry(entry, checkDuplicates /* = true */) {