summaryrefslogtreecommitdiff
path: root/modules/language/python/module/stat.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/module/stat.scm')
-rw-r--r--modules/language/python/module/stat.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/language/python/module/stat.scm b/modules/language/python/module/stat.scm
new file mode 100644
index 0000000..cb314b7
--- /dev/null
+++ b/modules/language/python/module/stat.scm
@@ -0,0 +1,38 @@
+(define-module (language python module stat)
+ #:export ())
+
+
+(define S_ISUID #o04000)
+(define S_ISGID #o02000)
+(define S_ENFMT "error")
+(define S_ISVTX #o01000)
+(define S_IREAD #o00400)
+(define S_IWRITE #o00200)
+(define S_IEXEC #o00100)
+(define S_IRWXU (logior S_IEXEC S_IWRITE S_IREAD))
+(define S_IRUSR S_IREAD)
+(define S_IWUSR S_IWRITE)
+(define S_IXUSR S_IEXEC)
+(define S_IRGRP #o00040)
+(define S_IWGRP #o00020)
+(define S_IXGRP #o00010)
+(define S_IRWXG (logior S_IXGRP S_IWGRP S_IRGRP))
+(define S_IROTH #o00004)
+(define S_IWOTH #o00002)
+(define S_IXOTH #o00001)
+(define S_IRWXO (logior S_IXOTH S_IWOTH S_IROTH))
+
+(define S_IFDIR #o040000)
+(define S_IFMT #o170000)
+(define S_IFREG #o100000)
+(define S_IFLNK #o120000)
+(define S_IFCHR #o020000)
+(define S_IFBLK #o060000)
+(define S_IFIFO #o010000)
+
+(define (is-dir? x) (= (logand x S_IFMT) S_IFDIR))
+(define (is-reg? x) (= (logand x S_IFMT) S_IFREG))
+(define (is-lnk? x) (= (logand x S_IFMT) S_IFLNK))
+(define (is-chr? x) (= (logand x S_IFMT) S_IFCHR))
+(define (is-blk? x) (= (logand x S_IFMT) S_IFBLK))
+(define (is-fif? x) (= (logand x S_IFMT) S_IFIFO))