summaryrefslogtreecommitdiff
path: root/node_modules/twig/lib/paths.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/twig/lib/paths.js')
-rw-r--r--node_modules/twig/lib/paths.js86
1 files changed, 86 insertions, 0 deletions
diff --git a/node_modules/twig/lib/paths.js b/node_modules/twig/lib/paths.js
new file mode 100644
index 0000000..6e61c5a
--- /dev/null
+++ b/node_modules/twig/lib/paths.js
@@ -0,0 +1,86 @@
+var FS = require("fs")
+ , sep_chr = '/';
+
+exports.relativePath = function(base, file) {
+ var base_path = exports.normalize(base.split(sep_chr)),
+ new_path = [],
+ val;
+
+ // Remove file from url
+ base_path.pop();
+ base_path = base_path.concat(file.split(sep_chr));
+
+ while (base_path.length > 0) {
+ val = base_path.shift();
+ if (val == ".") {
+ // Ignore
+ } else if (val == ".." && new_path.length > 0 && new_path[new_path.length-1] != "..") {
+ new_path.pop();
+ } else {
+ new_path.push(val);
+ }
+ }
+
+ return new_path.join(sep_chr);
+};
+
+exports.findBase = function(file) {
+ var paths = exports.normalize(file.split(sep_chr));
+ // we want everything before the file
+ if (paths.length > 1) {
+ // get rid of the filename
+ paths.pop();
+ return paths.join(sep_chr) + sep_chr;
+ } else {
+ // we're in the file directory
+ return "";
+ }
+};
+
+exports.removePath = function(path, file) {
+ if (!path) return "";
+
+ var base_path = exports.normalize(path.split(sep_chr))
+ , file_path = exports.normalize(file.split(sep_chr))
+ , val
+ , file_val;
+
+ // strip base path off of file path
+ while(base_path.length > 0) {
+ val = base_path.shift();
+ if (val !== '') {
+ file_val = file_path.shift();
+ }
+ }
+ return file_path.join(sep_chr);
+};
+
+exports.normalize = function(file_arr) {
+ var new_arr = []
+ , val;
+ while(file_arr.length > 0) {
+ val = file_arr.shift();
+ if (val !== '') {
+ new_arr.push(val);
+ }
+ }
+ return new_arr;
+};
+
+exports.strip_slash = function(path) {
+ if (path.substr(-1) == '/') path = path.substring(0, path.length-1);
+ return path;
+};
+
+exports.mkdir = function(dir) {
+ try {
+ FS.mkdirSync(dir);
+ } catch (err) {
+ if (err.code == "EEXIST") {
+ // ignore if it's a "EEXIST" exeption
+ } else {
+ console.log(err);
+ throw err;
+ }
+ }
+};