diff options
Diffstat (limited to 'node_modules/adm-zip/util/fattr.js')
-rw-r--r-- | node_modules/adm-zip/util/fattr.js | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/node_modules/adm-zip/util/fattr.js b/node_modules/adm-zip/util/fattr.js new file mode 100644 index 000000000..2191ec1c1 --- /dev/null +++ b/node_modules/adm-zip/util/fattr.js @@ -0,0 +1,84 @@ +var fs = require("fs"),
+ pth = require("path");
+
+fs.existsSync = fs.existsSync || pth.existsSync;
+
+module.exports = function(/*String*/path) {
+
+ var _path = path || "",
+ _permissions = 0,
+ _obj = newAttr(),
+ _stat = null;
+
+ function newAttr() {
+ return {
+ directory : false,
+ readonly : false,
+ hidden : false,
+ executable : false,
+ mtime : 0,
+ atime : 0
+ }
+ }
+
+ if (_path && fs.existsSync(_path)) {
+ _stat = fs.statSync(_path);
+ _obj.directory = _stat.isDirectory();
+ _obj.mtime = _stat.mtime;
+ _obj.atime = _stat.atime;
+ _obj.executable = !!(1 & parseInt ((_stat.mode & parseInt ("777", 8)).toString (8)[0]));
+ _obj.readonly = !!(2 & parseInt ((_stat.mode & parseInt ("777", 8)).toString (8)[0]));
+ _obj.hidden = pth.basename(_path)[0] === ".";
+ } else {
+ console.warn("Invalid path: " + _path)
+ }
+
+ return {
+
+ get directory () {
+ return _obj.directory;
+ },
+
+ get readOnly () {
+ return _obj.readonly;
+ },
+
+ get hidden () {
+ return _obj.hidden;
+ },
+
+ get mtime () {
+ return _obj.mtime;
+ },
+
+ get atime () {
+ return _obj.atime;
+ },
+
+
+ get executable () {
+ return _obj.executable;
+ },
+
+ decodeAttributes : function(val) {
+
+ },
+
+ encodeAttributes : function (val) {
+
+ },
+
+ toString : function() {
+ return '{\n' +
+ '\t"path" : "' + _path + ",\n" +
+ '\t"isDirectory" : ' + _obj.directory + ",\n" +
+ '\t"isReadOnly" : ' + _obj.readonly + ",\n" +
+ '\t"isHidden" : ' + _obj.hidden + ",\n" +
+ '\t"isExecutable" : ' + _obj.executable + ",\n" +
+ '\t"mTime" : ' + _obj.mtime + "\n" +
+ '\t"aTime" : ' + _obj.atime + "\n" +
+ '}';
+ }
+ }
+
+};
|