summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/fs_abilities.py
diff options
context:
space:
mode:
authorbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2004-01-28 06:54:53 +0000
committerbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2004-01-28 06:54:53 +0000
commit06d65d2d192b904e81fa17828c3b8b7dd273bb02 (patch)
treebb560713170517416384be01aedcfc57359b1e6e /rdiff-backup/rdiff_backup/fs_abilities.py
parenta41f18f654feaea3dfab6955df177e9956823ea2 (diff)
downloadrdiff-backup-06d65d2d192b904e81fa17828c3b8b7dd273bb02.tar.gz
Checked in John Goerzen's carbonfile patch
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@508 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup/fs_abilities.py')
-rw-r--r--rdiff-backup/rdiff_backup/fs_abilities.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/rdiff-backup/rdiff_backup/fs_abilities.py b/rdiff-backup/rdiff_backup/fs_abilities.py
index 39d4de9..2fb314a 100644
--- a/rdiff-backup/rdiff_backup/fs_abilities.py
+++ b/rdiff-backup/rdiff_backup/fs_abilities.py
@@ -40,6 +40,7 @@ class FSAbilities:
fsync_dirs = None # True if directories can be fsync'd
dir_inc_perms = None # True if regular files can have full permissions
resource_forks = None # True if regular_file/rsrc holds resource fork
+ carbonfile = None # True if Mac Carbon file data is supported.
name = None # Short string, not used for any technical purpose
read_only = None # True if capabilities were determined non-destructively
@@ -92,7 +93,8 @@ class FSAbilities:
add_boolean_list([('Access control lists', self.acls),
('Extended attributes', self.eas),
('Mac OS X style resource forks',
- self.resource_forks)])
+ self.resource_forks),
+ ('Mac OS X Finder information', self.carbonfile)])
s.append(s[0])
return '\n'.join(s)
@@ -112,6 +114,7 @@ class FSAbilities:
self.set_eas(rp, 0)
self.set_acls(rp)
self.set_resource_fork_readonly(rp)
+ self.set_carbonfile()
return self
def init_readwrite(self, rbdir, use_ctq_file = 1,
@@ -145,6 +148,7 @@ class FSAbilities:
self.set_acls(subdir)
self.set_dir_inc_perms(subdir)
self.set_resource_fork_readwrite(subdir)
+ self.set_carbonfile()
if override_chars_to_quote is None: self.set_chars_to_quote(subdir)
else: self.chars_to_quote = override_chars_to_quote
if use_ctq_file: self.compare_chars_to_quote(rbdir)
@@ -326,6 +330,23 @@ rdiff-backup-data/chars_to_quote.
else: self.dir_inc_perms = 0
test_rp.delete()
+ def set_carbonfile(self):
+ """Test for support of the Mac Carbon library. This library
+ can be used to obtain Finder info (creator/type)."""
+ try:
+ import Carbon.File
+ import MacOS
+ except:
+ self.carbonfile = 0
+ return
+
+ try: x = Carbon.File.FSSpec('.')
+ except:
+ self.carbonfile = 0
+ return
+
+ self.carbonfile = 1
+
def set_resource_fork_readwrite(self, dir_rp):
"""Test for resource forks by writing to regular_file/rsrc"""
assert dir_rp.conn is Globals.local_connection