annotate Lib/plat-mac/macostools.py @ 54294:dba767bc3155 legacy-trunk

remove mention of old ctypes version
author Benjamin Peterson <benjamin@python.org>
date Sat, 23 May 2009 20:59:09 +0000
parents ee9ced92843a
children 10101cf89d20
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 """macostools - Various utility functions for MacOS.
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
2
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3 mkalias(src, dst) - Create a finder alias 'dst' pointing to 'src'
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
4 copy(src, dst) - Full copy of 'src' to 'dst'
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5 """
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
6
46967
6df0394abbf1 Add warnings to and deprecated all those Mac modules
Benjamin Peterson <benjamin@python.org>
parents: 46197
diff changeset
7 from warnings import warnpy3k
47958
e7a6a4515ab0 fix test_py3kwarns
Benjamin Peterson <benjamin@python.org>
parents: 46967
diff changeset
8 warnpy3k("In 3.x, the macostools module is removed.", stacklevel=2)
46967
6df0394abbf1 Add warnings to and deprecated all those Mac modules
Benjamin Peterson <benjamin@python.org>
parents: 46197
diff changeset
9
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
10 from Carbon import Res
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
11 from Carbon import File, Files
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
12 import os
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
13 import MacOS
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
14 try:
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
15 openrf = MacOS.openrf
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
16 except AttributeError:
35273
9d838dd967b2 [ 1243081 ] repair typos
Georg Brandl <georg@python.org>
parents: 32736
diff changeset
17 # Backward compatibility
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
18 openrf = open
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
19
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
20 Error = 'macostools.Error'
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
21
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
22 BUFSIZ=0x80000 # Copy in 0.5Mb chunks
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
23
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
24 COPY_FLAGS = (Files.kIsStationary|Files.kNameLocked|Files.kHasBundle|
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
25 Files.kIsInvisible|Files.kIsAlias)
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
26
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
27 #
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
28 # Not guaranteed to be correct or stay correct (Apple doesn't tell you
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29 # how to do this), but it seems to work.
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30 #
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
31 def mkalias(src, dst, relative=None):
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
32 """Create a finder alias"""
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
33 srcfsr = File.FSRef(src)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
34 # The next line will fail under unix-Python if the destination
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
35 # doesn't exist yet. We should change this code to be fsref-based.
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
36 dstdir, dstname = os.path.split(dst)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
37 if not dstdir: dstdir = os.curdir
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
38 dstdirfsr = File.FSRef(dstdir)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
39 if relative:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
40 relativefsr = File.FSRef(relative)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
41 # ik mag er geen None in stoppen :-(
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
42 alias = File.FSNewAlias(relativefsr, srcfsr)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
43 else:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
44 alias = srcfsr.FSNewAliasMinimal()
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
45
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
46 dstfsr, dstfss = Res.FSCreateResourceFile(dstdirfsr, unicode(dstname),
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
47 File.FSGetResourceForkName())
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
48 h = Res.FSOpenResourceFile(dstfsr, File.FSGetResourceForkName(), 3)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
49 resource = Res.Resource(alias.data)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
50 resource.AddResource('alis', 0, '')
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
51 Res.CloseResFile(h)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
52
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
53 dstfinfo = dstfss.FSpGetFInfo()
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
54 dstfinfo.Flags = dstfinfo.Flags|0x8000 # Alias flag
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
55 dstfss.FSpSetFInfo(dstfinfo)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
56
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
57 def mkdirs(dst):
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
58 """Make directories leading to 'dst' if they don't exist yet"""
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
59 if dst == '' or os.path.exists(dst):
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
60 return
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
61 head, tail = os.path.split(dst)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
62 if os.sep == ':' and not ':' in head:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
63 head = head + ':'
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
64 mkdirs(head)
50522
ee9ced92843a Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47958
diff changeset
65
ee9ced92843a Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47958
diff changeset
66 try:
ee9ced92843a Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47958
diff changeset
67 os.mkdir(dst, 0777)
ee9ced92843a Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47958
diff changeset
68 except OSError, e:
ee9ced92843a Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47958
diff changeset
69 # be happy if someone already created the path
ee9ced92843a Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47958
diff changeset
70 if e.errno != errno.EEXIST:
ee9ced92843a Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47958
diff changeset
71 raise
ee9ced92843a Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
Georg Brandl <georg@python.org>
parents: 47958
diff changeset
72
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
73
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
74 def touched(dst):
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
75 """Tell the finder a file has changed. No-op on MacOSX."""
28223
733aebb57fb0 Filter out macfs warning.
Jack Jansen <jack.jansen@cwi.nl>
parents: 27502
diff changeset
76 import warnings
41793
c0e89d0ee0e5 Remove the macfs module. This led to the deprecation of macostools.touched();
Brett Cannon <bcannon@gmail.com>
parents: 35273
diff changeset
77 warnings.warn("macostools.touched() has been deprecated",
c0e89d0ee0e5 Remove the macfs module. This led to the deprecation of macostools.touched();
Brett Cannon <bcannon@gmail.com>
parents: 35273
diff changeset
78 DeprecationWarning, 2)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
79
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
80 def touched_ae(dst):
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
81 """Tell the finder a file has changed"""
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
82 pardir = os.path.split(dst)[0]
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
83 if not pardir:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
84 pardir = os.curdir
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
85 import Finder
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
86 f = Finder.Finder()
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
87 f.update(File.FSRef(pardir))
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
88
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
89 def copy(src, dst, createpath=0, copydates=1, forcetype=None):
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
90 """Copy a file, including finder info, resource fork, etc"""
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
91 src = File.pathname(src)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
92 dst = File.pathname(dst)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
93 if createpath:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
94 mkdirs(os.path.split(dst)[0])
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
95
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
96 ifp = open(src, 'rb')
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
97 ofp = open(dst, 'wb')
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
98 d = ifp.read(BUFSIZ)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
99 while d:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
100 ofp.write(d)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
101 d = ifp.read(BUFSIZ)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
102 ifp.close()
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
103 ofp.close()
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
104
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
105 ifp = openrf(src, '*rb')
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
106 ofp = openrf(dst, '*wb')
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
107 d = ifp.read(BUFSIZ)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
108 while d:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
109 ofp.write(d)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
110 d = ifp.read(BUFSIZ)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
111 ifp.close()
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
112 ofp.close()
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
113
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
114 srcfss = File.FSSpec(src)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
115 dstfss = File.FSSpec(dst)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
116 sf = srcfss.FSpGetFInfo()
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
117 df = dstfss.FSpGetFInfo()
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
118 df.Creator, df.Type = sf.Creator, sf.Type
46197
01a7e66525c2 #2503 make singletons compared with "is" not == or !=
Benjamin Peterson <benjamin@python.org>
parents: 45468
diff changeset
119 if forcetype is not None:
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
120 df.Type = forcetype
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
121 df.Flags = (sf.Flags & COPY_FLAGS)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
122 dstfss.FSpSetFInfo(df)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
123 if copydates:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
124 srcfsr = File.FSRef(src)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
125 dstfsr = File.FSRef(dst)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
126 catinfo, _, _, _ = srcfsr.FSGetCatalogInfo(Files.kFSCatInfoAllDates)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
127 dstfsr.FSSetCatalogInfo(Files.kFSCatInfoAllDates, catinfo)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 28223
diff changeset
128
26884
f0f9acca4164 Moved most of Mac/Lib hierarchy to Lib/plat-mac: it can be used both
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
129 def copytree(src, dst, copydates=1):
27502
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
130 """Copy a complete file tree to a new destination"""
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
131 if os.path.isdir(src):
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
132 mkdirs(dst)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
133 files = os.listdir(src)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
134 for f in files:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
135 copytree(os.path.join(src, f), os.path.join(dst, f), copydates)
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
136 else:
e42e3025bae3 Converted to not use macfs whenever possible.
Jack Jansen <jack.jansen@cwi.nl>
parents: 26884
diff changeset
137 copy(src, dst, 1, copydates)