/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/command/add.py

  • Committer: Tim Marston
  • Date: 2014-04-18 15:00:34 UTC
  • Revision ID: tim@ed.am-20140418150034-l94wfs6ururhi9t5
fixed error in walker.py (from last checkin)

Show diffs side-by-side

added added

removed removed

53
53
                        [ "repo=", "verbose", "help" ] )
54
54
                for opt, optarg in opts:
55
55
                        if opt in [ '--repo', '-r' ]:
56
 
                                if not re.search( '^[-a-zA-z0-9.]+$', optarg ):
 
56
                                if not re.match( '^[-a-zA-z0-9.]+$', optarg ):
57
57
                                        raise the.program.FatalError(
58
58
                                                'invalid repository name: ' + optarg )
59
59
                                the.repo = optarg
61
61
                                the.verbose += 1
62
62
                        elif opt == "--help":
63
63
                                self.print_help()
64
 
 
 
64
                
65
65
                # discard first argument (the command)
66
66
                args.pop( 0 )
67
67
 
89
89
                if the.repo.vcs.has_changes():
90
90
                        raise the.program.FatalError(
91
91
                                'repo has local changes: %s\n'
92
 
                                'Hint: see "%s stage-revert --help"' %
 
92
                                'Hint: see "%s stage-revert --help"' % 
93
93
                                ( the.repo.name, the.program.name ) )
94
94
 
95
95
                # check status
109
109
        def expand_home_dir_files( files ):
110
110
                """Returns a unique, sorted list of relative filenames, calculated from the list
111
111
                provided, which is made up from individual files and directories
112
 
                relative to the CWD.  Directories are not recursed in to, and leading
113
 
                path components are not returned.  Specified filenames must exist in the
114
 
                home directory (although they may not exist in the repo).
115
 
 
 
112
                relative to the CWD.  Directories and are not recursed in to.  Specified
 
113
                filenames must exist in the home directory (although they may not exist
 
114
                in the repo).
116
115
                """
117
116
 
118
 
                ret = set()
 
117
                ret = list()
119
118
                home_dir_prefix = os.path.realpath( the.full_home_dir ) + os.sep
120
119
 
121
120
                # iterate through file list
127
126
                        # check the file is in the home directory
128
127
                        if abs_file[ : len( home_dir_prefix ) ] != home_dir_prefix:
129
128
                                raise the.program.FatalError(
130
 
                                        'not under home directory: %s' % abs_file )
 
129
                                        'not in home directory: %s' % abs_file )
131
130
 
132
131
                        # relative file
133
132
                        rel_file = abs_file[ len( home_dir_prefix ) : ]
135
134
                        # check if file exists in home directory
136
135
                        if not os.path.lexists( abs_file ):
137
136
                                raise the.program.FatalError(
138
 
                                        'not found in home directory: %s' % rel_file )
139
 
 
140
 
                        # # append path parts
141
 
                        # path = rel_file
142
 
                        # while True:
143
 
                        #       path, dummy = os.path.split( path )
144
 
                        #       if len( path ): ret.add( path )
145
 
                        #       else: break
146
 
 
147
 
                        # append the file or directory
148
 
                        ret.add( rel_file )
149
 
 
150
 
                return sorted( ret )
 
137
                                        'not in home directory: %s' % rel_file )
 
138
 
 
139
                        # append the file or directory tree
 
140
                        ret.append( rel_file )
 
141
 
 
142
                return sorted( set ( ret ) )