/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: 2016-05-22 16:45:54 UTC
  • Revision ID: tim@ed.am-20160522164554-n5qhuibvnv0z4tk1
added general reporting to CopyBase and configured it via copy-in and copy-out
walkers (it is required in copy in, during add command); added -R (recursive)
flass to add command; allow vcs backends to augment statically ignored files
list; added detection of out of date working copy to bzr backend;
generate_walk_list() now takes a mandatory directory as the first argument;
don't copy entire subtree during copy of missing directory (as this makes
assumptions about what's in the walk-list)

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
 
49
49
 
50
50
                # entity is missing in home dir?
51
51
                if dst.type == '_':
52
 
                        if the.verbose >= 2: print("  _|%s %s" % ( dst.type, rel_file ))
 
52
                        if the.verbose >= 2: print "  _|%s %s" % ( dst.type, rel_file )
53
53
                        if not the.config.ignores.matches( rel_file ):
54
54
                                self.missing.append( rel_file )
55
55
 
65
65
                        # is an acceptable substitution?
66
66
                        if src.type == 'd' and dst.link_type == 'd' and \
67
67
                                        the.config.symlinks.matches( rel_file ):
68
 
                                if the.verbose >= 2: print("  d@d " + rel_file)
 
68
                                if the.verbose >= 2: print "  d@d " + rel_file
69
69
                                return True
70
70
 
71
71
                        if the.verbose >= 2:
72
 
                                print("  %s|%s %s" % ( dst.type, src.type, rel_file ))
 
72
                                print "  %s|%s %s" % ( dst.type, src.type, rel_file )
73
73
                        if not the.config.ignores.matches( rel_file ):
74
74
                                self.changed.append( "%s (%s => %s)" % (
75
75
                                        rel_file, src.get_type_name(), dst.get_type_name() ) )
81
81
                # entity is a file that has been modified?
82
82
                if src.type == 'f':
83
83
                        if not filecmp.cmp( src.file, dst.file ):
84
 
                                if the.verbose >= 2: print("  f|f " + rel_file)
 
84
                                if the.verbose >= 2: print "  f|f " + rel_file
85
85
                                if not the.config.ignores.matches( rel_file ):
86
86
                                        self.modified.append( rel_file )
87
87
                        else:
88
 
                                if the.verbose >= 2: print("  f=f " + rel_file)
 
88
                                if the.verbose >= 2: print "  f=f " + rel_file
89
89
                        return False
90
90
 
91
91
                # entity is a symlink that has been modified?
92
92
                elif dst.type == 'l':
93
93
                        if os.readlink( src.file ) != os.readlink( dst.file ):
94
 
                                if the.verbose >= 2: print("  l|l " + rel_file)
 
94
                                if the.verbose >= 2: print "  l|l " + rel_file
95
95
                                if not the.config.ignores.matches( rel_file ):
96
96
                                        self.modified.append( rel_file )
97
97
                        else:
98
 
                                if the.verbose >= 2: print("  l=l " + rel_file)
 
98
                                if the.verbose >= 2: print "  l=l " + rel_file
99
99
                        return False
100
100
 
101
101
                # TODO: check directory permission changes
102
102
 
103
103
                # nothing to see here
104
104
                if the.verbose >= 2:
105
 
                        print("  %s=%s %s" % ( dst.type, src.type, rel_file ))
 
105
                        print "  %s=%s %s" % ( dst.type, src.type, rel_file )
106
106
                return True