/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/status.py

  • Committer: Tim Marston
  • Date: 2014-04-05 22:27:09 UTC
  • Revision ID: tim@ed.am-20140405222709-4mp50aiu184blnf1
fixed file_matcher

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
        directory and notes any that have been modified, are missing, or which have
30
30
        changed type.  It is run, for example, but the "stdhome status" comand.
31
31
 
32
 
        Walker source:       home dir
33
 
        Walker destination:  repo
 
32
        Walker source:       repo
 
33
        Walker destination:  home dir
34
34
        Walker traversing:   repo (unless a walk list is provided)
35
35
        """
36
36
 
37
37
        def __init__( self, walk_list = None ):
38
 
                self.src_dir = the.full_home_dir
39
 
                self.dst_dir = the.repo.full_dir
 
38
                self.src_dir = the.repo.full_dir
 
39
                self.dst_dir = the.full_home_dir
40
40
                self.walk_list = walk_list if walk_list is not None else \
41
41
                                                 self.generate_walk_list( the.repo.full_dir )
42
42
 
45
45
                self.changed = list()
46
46
 
47
47
 
48
 
        def process( self, rel_file, src_file, src_type, dst_file, dst_type ):
 
48
        def process( self, rel_file, src, dst ):
49
49
 
50
50
                # entity is missing in home dir?
51
 
                if src_type == '_':
 
51
                if dst.type == '_':
52
52
                        self.missing.append( rel_file )
53
53
 
54
54
                        # if a directory is missing in the home dir, we only really want to
57
57
                        return False
58
58
 
59
59
                # entity has changed type?
60
 
                elif src_type != dst_type:
61
 
                        self.changed.append( "%s (now %s)" % (
62
 
                                rel_file, self.name_of_type( src_type ) ) )
 
60
                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() ) )
63
63
 
64
64
                        # if an entity has changed to/from a directory, we don't care about
65
65
                        # anything that directory does/did contain
67
67
 
68
68
                # entity has been modified?
69
69
                # TODO: check directory permission changes
70
 
                if dst_type == 'f':
71
 
                        if not filecmp.cmp( src_file, dst_file ):
 
70
                if src.type == 'f':
 
71
                        if not filecmp.cmp( src.file, dst.file ):
72
72
                                self.modified.append( rel_file )
73
 
                elif dst_type == 'l':
74
 
                        if os.readlink( src_file ) != os.readlink( dst_file ):
 
73
                elif dst.type == 'l':
 
74
                        if os.readlink( src.file ) != os.readlink( dst.file ):
75
75
                                self.modified.append( rel_file )
76
76
 
77
77
                # nothing to see here