forked from joeferner/node-java
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpostInstall.js
More file actions
Latest commit
70 lines (56 loc) · 1.44 KB
/
Copy pathpostInstall.js
File metadata and controls
70 lines (56 loc) · 1.44 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
varglob=require('glob');
varfs=require('fs');
varpath=require('path');
varos=require('os');
require('find-java-home')(function(err,home){
vardll;
vardylib;
varso,soFiles;
varbinary;
if(home){
dll=glob.sync('**/jvm.dll',{cwd: home})[0];
dylib=glob.sync('**/libjli.dylib',{cwd: home})[0];
soFiles=glob.sync('**/libjvm.so',{cwd: home});
if(soFiles.length>0)
so=getCorrectSoForPlatform(soFiles);
binary=dll||dylib||so;
fs.writeFileSync(
path.resolve(__dirname,'./build/jvm_dll_path.json'),
binary
? JSON.stringify(
path.delimiter
+path.dirname(path.resolve(home,binary))
)
: '""'
);
}
});
functiongetCorrectSoForPlatform(soFiles){
varso=_getCorrectSoForPlatform(soFiles);
if(so){
so=removeDuplicateJre(so);
}
returnso;
}
functionremoveDuplicateJre(filePath){
while(filePath.indexOf('jre/jre')>=0){
filePath=filePath.replace('jre/jre','jre');
}
returnfilePath;
}
function_getCorrectSoForPlatform(soFiles){
vararchitectureFolderNames={
'ia32': 'i386',
'x64': 'amd64'
};
if(os.platform()!='sunos')
returnsoFiles[0];
varrequiredFolderName=architectureFolderNames[os.arch()];
for(vari=0;i<soFiles.length;i++){
varso=soFiles[i];
if(so.indexOf('server')>0)
if(so.indexOf(requiredFolderName)>0)
returnso;
}
returnsoFiles[0];
}