added scripts/path.awk
This commit is contained in:
parent
080f608c95
commit
a8f50d42cc
|
@ -0,0 +1,51 @@
|
|||
function getDirname(path, pathComponents, dirname) {
|
||||
dirname = ""
|
||||
pathComponents[1] = ""
|
||||
|
||||
sub(/\/+$/, "", path)
|
||||
split(path, pathComponents, "/")
|
||||
|
||||
if (length(pathComponents) < 2) return "."
|
||||
|
||||
for (i in pathComponents)
|
||||
dirname = dirname pathComponents[i] "/"
|
||||
|
||||
return dirname
|
||||
}
|
||||
|
||||
function resolvePath(path, resolvedPath, pathComponents) {
|
||||
pathComponents[1] = ""
|
||||
resolvedPath = ""
|
||||
|
||||
sub(/\/+$/, "", path)
|
||||
split(path, pathComponents, "/")
|
||||
|
||||
for (i in pathComponents)
|
||||
if (pathComponents[i] == "." || pathComponents[i+1] == ".." || pathComponents[i] == ""))
|
||||
continue
|
||||
else
|
||||
resolvedPath = resolvedPath pathComponents[i] "/"
|
||||
|
||||
return resolvedPath
|
||||
}
|
||||
|
||||
function getRelativePath(base, path, resolvedPath, baseComponents, pathComponents, commonPrefix) {
|
||||
path = resolvePath(path)
|
||||
base = resolvePath(base)
|
||||
pathComponents[1] = ""
|
||||
baseComponents[1] = ""
|
||||
isCommonPrefixUnfinished = 1
|
||||
|
||||
sub(/\/+$/, "", base)
|
||||
sub(/\/+$/, "", path)
|
||||
|
||||
for (i in pathComponents)
|
||||
if (baseComponents[i] == pathComponents[i] && isCommonPrefixUnfinished)
|
||||
resolvedPath = resolvedPath "../"
|
||||
else {
|
||||
isCommonPrefixUnfinished = 0
|
||||
resolvedPath = resolvedPath pathComponents[i] "/"
|
||||
}
|
||||
|
||||
return resolvedPath
|
||||
}
|
Loading…
Reference in New Issue