diff options
Diffstat (limited to 'share/qbs/imports/qbs/fileinfo/fileinfo.js')
-rw-r--r-- | share/qbs/imports/qbs/fileinfo/fileinfo.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/share/qbs/imports/qbs/fileinfo/fileinfo.js b/share/qbs/imports/qbs/fileinfo/fileinfo.js new file mode 100644 index 000000000..b65e4073c --- /dev/null +++ b/share/qbs/imports/qbs/fileinfo/fileinfo.js @@ -0,0 +1,62 @@ +function path(fp) { + if (fp[fp.length -1] == '/') + return fp; + var last = fp.lastIndexOf('/'); + if (last < 0) + return '.'; + return fp.slice(0, last); +} + +function fileName(fph) { + var fp = fph.toString(); + if (fp[fp.length -1] == '/') + return fp; + var last = fp.lastIndexOf('/'); + if (last < 0) + return '.'; + return fp.slice(last + 1); +} + +function baseName(fph) { + var fn = fileName(fph); + return fn.split('.')[0]; +} + +function relativePath(base, rel) +{ + var basel = base.split('/'); + var rell = rel.split('/'); + var i = 0; + + while (i < basel.length && i < rell.length && basel[i] == rell[i]) + i++; + + var j = i; + var r = []; + + for (; i < basel.length; i++) + r.push('..'); + + for (; j < rell.length; j++) + r.push(rell[j]); + + return r.join('/'); +} + +function isAbsolutePath(path) +{ + if (!path) + return false; + return (path.charAt(0) == '/'); +} + +function toWindowsSeparators(str) +{ + return str.toString().replace(/\//g, '\\'); +} + +function fromWindowsSeparators(str) +{ + return str.toString().replace(/\\/g, '/'); +} + |