From 2513639499325dcd194d5ffc5c329df98966b6e4 Mon Sep 17 00:00:00 2001 From: fg2it Date: Sat, 26 Sep 2015 11:38:37 +0200 Subject: [PATCH] fix for relative path --- tasks/options/phantomjs.js | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/tasks/options/phantomjs.js b/tasks/options/phantomjs.js index 719adcebf1d..ee5aa996d1d 100644 --- a/tasks/options/phantomjs.js +++ b/tasks/options/phantomjs.js @@ -1,11 +1,33 @@ module.exports = function(config,grunt) { 'use strict'; + grunt.registerTask('phantomjs', 'Copy phantomjs binary from node', function() { - var m=grunt.file.read("./node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/location.js") - var p=/= \"([^\"]*)\"/.exec(m); - if (grunt.file.exists(p[1])) { - grunt.log.writeln('Using '+ p[1]); - grunt.file.copy(p[1],'vendor/phantomjs/phantomjs'); + + var dest = './vendor/phantomjs/phantomjs'; + var confDir = './node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/' + + if (!grunt.file.exists(dest)){ + + var m=grunt.file.read(confDir+"location.js") + var src=/= \"([^\"]*)\"/.exec(m)[1]; + + if (!grunt.file.isPathAbsolute(src)) { + src = confDir+src; + } + + var exec = require('child_process').execFileSync; + + try { + var ph=exec(src,['-v'], { stdio: 'ignore' }); + grunt.verbose.writeln('Using '+ src); + grunt.file.copy(src, dest, { encoding: null }); + } catch (err) { + grunt.verbose.writeln(err); + grunt.fail.warn('No working Phantomjs binary available') + } + + } else { + grunt.log.writeln('Phantomjs already imported from node'); } }); -}; \ No newline at end of file +};