File: JDK-util.js

package info (click to toggle)
openjdk-11 11.0.28%2B6-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 781,124 kB
  • sloc: java: 5,208,481; xml: 1,192,267; cpp: 1,138,346; ansic: 461,925; javascript: 162,416; sh: 16,738; objc: 13,729; python: 4,757; asm: 3,570; makefile: 2,965; perl: 357; awk: 351; sed: 172; jsp: 24; csh: 3
file content (85 lines) | stat: -rw-r--r-- 2,631 bytes parent folder | download | duplicates (7)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
 * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/**
 * This file contains utility functions used by other tests.
 * @subtest
 */

var Files = Java.type('java.nio.file.Files'),
    Paths = Java.type('java.nio.file.Paths'),
    System = Java.type('java.lang.System')

var File = java.io.File
var windows = System.getProperty("os.name").startsWith("Windows")
var winCyg = false

var outPath = {
    windows:0, //C:\dir
    mixed:1    //C:/dir
}

if (windows) {
    //Is there any better way to diffrentiate between cygwin/command prompt on windows
    var term = System.getenv("TERM")
    winCyg = term ? true:false
}

/**
 * Returns which command is selected from PATH
 * @param cmd name of the command searched from PATH
 */
function which(cmd) {
    var path = System.getenv("PATH")
    var st = new java.util.StringTokenizer(path, File.pathSeparator)
    while (st.hasMoreTokens()) {
        var file = new File(st.nextToken(), cmd)
        if (file.exists()) {
            return (file.getAbsolutePath())
        }
    }
}

/**
 * Unix cygpath implementation
 * Supports only two outputs,windows(C:\dir\) and mixed(C:/dir/)
 */
function cygpath(path,mode) {
   
    var newpath = path
    if(path.startsWith("/cygdrive/")){
        var str = path.substring(10)
        var index = str.indexOf('/',0)
        var drv = str.substring(0,index)
        var rstr = drv.toUpperCase() + ":"
        newpath = str.replaceFirst(drv,rstr)
    }
    if (mode == outPath.windows)
        return Paths.get(newpath).toString()
    else {
        newpath = newpath.replaceAll('\\\\','/')
        return newpath
    }                   

}