-
Notifications
You must be signed in to change notification settings - Fork 153
/
karate-config.js
47 lines (38 loc) · 1.58 KB
/
karate-config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function fn() {
var config = {
}
config.scratch = java.nio.file.Files.createTempDirectory('jbang').toAbsolutePath().toString();
var sc = config.scratch;
karate.log('scratch', sc);
config.fileexist = function fn(file) {
return java.nio.file.Files.exists(java.nio.file.Paths.get(file))
}
config.command = function fn(line, env) {
if (!env) {
env = {}
}
// provide default scratch directory for temporary content
!('SCRATCH' in env) && (env.SCRATCH = sc)
// set JBANG_REPO to not mess with users own ~/.m2
sep = java.io.File.separator;
!('JBANG_REPO' in env) && (env.JBANG_REPO = sc + sep + "karate-m2")
!('JBANG_DIR' in env) && (env.JBANG_DIR = sc + sep + "karate-jbang")
!('JBANG_NO_VERSION_CHECK' in env) && (env.JBANG_NO_VERSION_CHECK = "true")
env.NO_COLOR="1"
var proc = karate.fork({ redirectErrorStream: false, useShell: true, line: line, env: env});
proc.waitSync();
karate.set('out', proc.sysOut);
karate.set('err', proc.sysErr);
karate.set('exit', proc.exitCode);
}
var version = java.lang.System.getProperty('java.version');
if(version.startsWith("1.")) {
version = version.substring(2, 3);
} else {
var dot = version.indexOf(".");
if(dot != -1) { version = version.substring(0, dot); }
}
config.javaversion = version;
config.windows = java.lang.System.getProperty("os.name").toLowerCase().contains("win");
return config;
}