38
38
self.src_dir = the.repo.full_dir
39
39
self.dst_dir = the.full_home_dir
40
40
self.walk_list = walk_list if walk_list is not None else \
41
self.generate_walk_list( the.repo.full_dir )
41
self.generate_walk_list()
43
43
self.modified = list()
44
44
self.missing = list()
50
50
# entity is missing in home dir?
51
51
if dst.type == '_':
52
self.missing.append( rel_file )
52
if the.verbose >= 2: print " _|%s %s" % ( dst.type, rel_file )
53
if not the.config.ignores.matches( rel_file ):
54
self.missing.append( rel_file )
54
56
# if a directory is missing in the home dir, we only really want to
55
57
# hear about that and not all the files it contains (which are also
59
61
# entity has changed type?
60
62
elif dst.get_type_name() != src.get_type_name():
61
self.changed.append( "%s (%s => %s)" % (
62
rel_file, src.get_type_name(), dst.get_type_name() ) )
64
# is it a directory that has changed to a symlnik to a directory and
65
# is an acceptable substitution?
66
if src.type == 'd' and dst.link_type == 'd' and \
67
the.config.symlinks.matches( rel_file ):
68
if the.verbose >= 2: print " d@d " + rel_file
72
print " %s|%s %s" % ( dst.type, src.type, rel_file )
73
if not the.config.ignores.matches( rel_file ):
74
self.changed.append( "%s (%s => %s)" % (
75
rel_file, src.get_type_name(), dst.get_type_name() ) )
64
77
# if an entity has changed to/from a directory, we don't care about
65
78
# anything that directory does/did contain
68
# entity has been modified?
69
# TODO: check directory permission changes
81
# entity is a file that has been modified?
70
82
if src.type == 'f':
71
83
if not filecmp.cmp( src.file, dst.file ):
72
self.modified.append( rel_file )
84
if the.verbose >= 2: print " f|f " + rel_file
85
if not the.config.ignores.matches( rel_file ):
86
self.modified.append( rel_file )
88
if the.verbose >= 2: print " f=f " + rel_file
91
# entity is a symlink that has been modified?
73
92
elif dst.type == 'l':
74
93
if os.readlink( src.file ) != os.readlink( dst.file ):
75
self.modified.append( rel_file )
94
if the.verbose >= 2: print " l|l " + rel_file
95
if not the.config.ignores.matches( rel_file ):
96
self.modified.append( rel_file )
98
if the.verbose >= 2: print " l=l " + rel_file
101
# TODO: check directory permission changes
77
103
# nothing to see here
105
print " %s=%s %s" % ( dst.type, src.type, rel_file )