summaryrefslogtreecommitdiffstats
path: root/Mac/Lib/macfs.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Lib/macfs.py')
-rw-r--r--Mac/Lib/macfs.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/Mac/Lib/macfs.py b/Mac/Lib/macfs.py
new file mode 100644
index 0000000..8c3af52
--- /dev/null
+++ b/Mac/Lib/macfs.py
@@ -0,0 +1,96 @@
+"""macfs - Pure Python module designed to be backward compatible with
+macfs and MACFS.
+"""
+import sys
+
+# First step: ensure we also emulate the MACFS module, which contained
+# all the constants
+
+sys.modules['MACFS'] = sys.modules[__name__]
+
+# Import all those constants
+from Carbon.Files import *
+from Carbon.Folders import *
+# Another method:
+from Carbon.Folder import FindFolder
+
+# For some obscure historical reason these are here too:
+READ = 1
+WRITE = 2
+smAllScripts = -3
+
+
+import Carbon.File
+# The old name of the error object:
+error = Carbon.File.Error
+
+class FSSpec(Carbon.File.FSSpec):
+ def as_fsref(self):
+ return FSRef(self)
+
+ def NewAlias(self, src=None):
+ return Alias(Carbon.File.NewAlias(src, self))
+
+ def GetCreatorType(self):
+ finfo = self.FSpGetFInfo()
+ return finfo.Creator, finfo.Type
+
+ def SetCreatorType(self, ctor, tp):
+ finfo = self.FSpGetFInfo()
+ finfo.Creator = ctor
+ finfo.Type = tp
+ self.FSpSetFInfo(finfo)
+
+ def GetFInfo(self):
+ return self.FSpGetFInfo()
+
+ def SetFInfo(self, info):
+ return self.FSpSetFInfo(info)
+
+ def GetDates(self):
+ import os
+ statb = os.stat(self.as_pathname())
+ return statb.st_ctime, statb.st_mtime, 0
+
+ def SetDates(self, *dates):
+ print "FSSpec.SetDates no longer implemented"
+
+class FSRef(Carbon.File.FSRef):
+ def as_fsspec(self):
+ return FSSpec(self)
+
+class Alias(Carbon.File.Alias):
+
+ def GetInfo(self, index):
+ return self.GetAliasInfo(index)
+
+ def Update(self, *args):
+ print "Alias.Update not yet implemented"
+
+ def Resolve(self, src=None):
+ return self.ResolveAlias(src)[1:]
+
+from Carbon.File import FInfo
+
+FSSpecType = FSSpec
+FSRefType = FSRef
+AliasType = Alias
+FInfoType = FInfo
+
+def ResolveAliasFile(fss, chain=1):
+ return Carbon.Files.ResolveAliasFile(fss, chain)
+
+def RawFSSpec(data):
+ return FSSpec(rawdata=data)
+
+def RawAlias(data):
+ return Alias(rawdata=data)
+
+def FindApplication(*args):
+ raise NotImplementedError, "FindApplication no longer implemented"
+
+def NewAliasMinimalFromFullPath(path):
+ return Carbon.Files.NewAliasMinimalFromFullPath(path, '', '')
+
+# Finally, install nav services
+import macfsn \ No newline at end of file