handle errors when traversing directories
							parent
							
								
									c3c51e2c60
								
							
						
					
					
						commit
						0220609928
					
				| 
						 | 
					@ -24,7 +24,7 @@ IN: io.directories.search
 | 
				
			||||||
TUPLE: directory-iterator path bfs queue ;
 | 
					TUPLE: directory-iterator path bfs queue ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: push-directory-entries ( path iter -- )
 | 
					: push-directory-entries ( path iter -- )
 | 
				
			||||||
    [ qualified-directory-entries ] dip '[
 | 
					    [ [ qualified-directory-entries ] [ 2drop f ] recover ] dip '[
 | 
				
			||||||
        _ [ queue>> ] [ bfs>> ] bi
 | 
					        _ [ queue>> ] [ bfs>> ] bi
 | 
				
			||||||
        [ push-front ] [ push-back ] if
 | 
					        [ push-front ] [ push-back ] if
 | 
				
			||||||
    ] each ;
 | 
					    ] each ;
 | 
				
			||||||
| 
						 | 
					@ -70,16 +70,12 @@ PRIVATE>
 | 
				
			||||||
    [ ] accumulator [ each-directory-entry ] dip ;
 | 
					    [ ] accumulator [ each-directory-entry ] dip ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: find-file ( path bfs? quot -- path/f )
 | 
					: find-file ( path bfs? quot -- path/f )
 | 
				
			||||||
    '[
 | 
					    [ <directory-iterator> ] dip
 | 
				
			||||||
        _ _ _ [ <directory-iterator> ] dip
 | 
					    [ keep and ] curry iterate-directory ;
 | 
				
			||||||
        [ keep and ] curry iterate-directory
 | 
					 | 
				
			||||||
    ] [ drop f ] recover ;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
: find-all-files ( path quot -- paths/f )
 | 
					: find-all-files ( path quot -- paths/f )
 | 
				
			||||||
    '[
 | 
					    [ f <directory-iterator> ] dip pusher
 | 
				
			||||||
        _ _ [ f <directory-iterator> ] dip
 | 
					    [ [ f ] compose iterate-directory drop ] dip ;
 | 
				
			||||||
        pusher [ [ f ] compose iterate-directory drop ] dip
 | 
					 | 
				
			||||||
    ] [ drop f ] recover ;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
ERROR: file-not-found path bfs? quot ;
 | 
					ERROR: file-not-found path bfs? quot ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue