Browse Source

fix for relative path

fg2it 10 years ago
parent
commit
2513639499
1 changed files with 28 additions and 6 deletions
  1. 28 6
      tasks/options/phantomjs.js

+ 28 - 6
tasks/options/phantomjs.js

@@ -1,11 +1,33 @@
 module.exports = function(config,grunt) {
 module.exports = function(config,grunt) {
   'use strict';
   'use strict';
+
   grunt.registerTask('phantomjs', 'Copy phantomjs binary from node', function() {
   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');
     }
     }
   });
   });
-};
+};