/stdhome

To get this branch, use:
bzr branch http://bzr.ed.am/stdhome

« back to all changes in this revision

Viewing changes to lib/stdhome/walker/conflict.py

  • Committer: Tim Marston
  • Date: 2014-03-19 20:01:06 UTC
  • Revision ID: tim@ed.am-20140319200106-ou5y1nat6y2auaue
removed square brackets from AC_INIT parameter

Show diffs side-by-side

added added

removed removed

20
20
 
21
21
 
22
22
import filecmp, os
23
 
from .walker import Walker
 
23
from walker import Walker
24
24
import stdhome.the as the
25
25
 
26
26
 
36
36
        Walker traversing:   repo
37
37
        """
38
38
 
39
 
        def __init__( self, ignore_files, walk_files = None ):
 
39
        def __init__( self, ignore_files, affected_files = None ):
40
40
                self.src_dir = the.repo.full_dir
41
41
                self.dst_dir = the.full_home_dir
42
 
                self.walk_list = walk_files if walk_files is not None else \
 
42
                self.walk_list = affected_files if affected_files is not None else \
43
43
                                                 self.generate_walk_list( the.repo.full_dir )
44
44
 
45
45
                self.ignore_files = ignore_files
47
47
                self.obstructed = list()
48
48
 
49
49
 
50
 
        def process( self, rel_file, src, dst ):
 
50
        def process( self, rel_file, src_file, src_type, dst_file, dst_type ):
51
51
 
52
52
                # if entity is missing in home dir, it's ok to copy out (and there's no
53
53
                # need to recurse)
54
 
                if dst.type == '_': return False
 
54
                if dst_type == '_': return False
55
55
 
56
56
                # if entity was copied-in, it's ok to copy out
57
57
                elif rel_file in self.ignore_files:
59
59
                        # we recurse only if this is a directory in the home dir, because if
60
60
                        # it isn't copying-out will replace whatever's in the home dir with
61
61
                        # the whole directory from the repo
62
 
                        return dst.type == 'd'
 
62
                        return dst_type == 'd'
63
63
 
64
64
                # entity has changed type?
65
 
                elif src.get_type_name() != dst.get_type_name():
66
 
                        self.changed.append( "%s (%s => %s)" % (
67
 
                                rel_file, src.get_type_name(), dst.get_type_name() ) )
 
65
                elif src_type != dst_type:
 
66
                        self.changed.append( "%s (now %s)" % (
 
67
                                rel_file, self.name_of_type( src_type ) ) )
68
68
 
69
69
                        # if an entity has changed to/from a directory, we don't care about
70
70
                        # anything that directory does/did contain
71
71
                        return False
72
72
 
73
73
                # entity is a file (that wasn't copyied-in)?
74
 
                elif dst.type == 'f':
 
74
                elif dst_type == 'f':
75
75
 
76
 
                        # only a problem if its content is different
77
 
                        if not filecmp.cmp( src.file, dst.file ):
 
76
                        # only aproblem if its content is different
 
77
                        if not filecmp.cmp( src_file, dst_file ):
78
78
                                self.obstructed.append( rel_file )
79
79
                                return False
80
80
 
81
81
                # entity is a symlink (that wasn't copied-in)?
82
 
                if dst.type == 'l':
 
82
                if dst_type == 'l':
83
83
 
84
84
                        # only a problem if the symlink is different
85
 
                        if os.readlink( src.file ) != os.readlink( dst.file ):
 
85
                        if os.readlink( src_file ) != os.readlink( dst_file ):
86
86
                                self.obstructed.append( rel_file )
87
87
                                return False
88
88