aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/imports/qbs/fileinfo/fileinfo.js
diff options
context:
space:
mode:
Diffstat (limited to 'share/qbs/imports/qbs/fileinfo/fileinfo.js')
-rw-r--r--share/qbs/imports/qbs/fileinfo/fileinfo.js62
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, '/');
+}
+