/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-12-13 21:40:34 UTC
  • Revision ID: tim@ed.am-20161213214034-nd5t7ztnlrjd627i
fix add command and generic filename expansion/resolution to expend to
homedir-relative filename and absolute filename based on original filename, as
specified, rather than a fully, symlink-resolved filename.  So, e.g., if ~/bob
was a symlink to ~/fred, then ~/bob/a would resolve to the relative filename
bob/a, becuase it is inside the homedir (it would resolve to fred/a otherwise)

Show diffs side-by-side

added added

removed removed

Lines of Context:
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