/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/copy_out.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

36
36
        Walker destination:  home dir
37
37
        Walker traversing:   repo (or a provided file list, which may include stuff
38
38
                                                        that no longer exists in the repo
39
 
 
40
39
        """
41
40
 
42
 
        def __init__( self, walk_files = None ):
 
41
        def __init__( self, walk_files = None, report = True ):
 
42
                CopyBaseWalker.__init__( self )
43
43
                self.src_dir = the.repo.full_dir
44
44
                self.dst_dir = the.full_home_dir
45
45
                self.walk_list = walk_files if walk_files is not None else \
46
46
                                                 self.generate_walk_list( the.repo.full_dir )
47
 
 
48
 
                self.accept_list = FileMatcher( the.config_file, 'symlink' )
49
 
 
50
 
 
51
 
        def print_op( self, rel_file, operation ):
52
 
                operation = re.sub( r'(.)(.)(.)', r'\3\2\1', operation )
53
 
                operation = re.sub( r'\>', r'<', operation )
54
 
                print "  %s %s" % ( operation, rel_file )
 
47
                self.check_dst_symlinks = True
 
48
                self.check_dst_ignores = True
 
49
                self.report = report
 
50
 
 
51
 
 
52
        def print_op( self, rel_file, src, op, dst ):
 
53
 
 
54
                CopyBaseWalker.print_op( self, rel_file, src, op, dst )
 
55
 
 
56
                # verbose reporting
 
57
                if the.verbose >= 2:
 
58
                        if op == '*': op = '<'
 
59
                        print "  %s%s%s %s" % ( src, op, dst, rel_file )