d i f f   - - g i t   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / c o p y _ f i l e . p y   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / c o p y _ f i l e . p y 
 
 i n d e x   a a 9 5 a 8 d . . 7 4 2 0 f 6 0   1 0 0 6 4 4 
 
 - - -   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / c o p y _ f i l e . p y 
 
 + + +   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / c o p y _ f i l e . p y 
 
 @ @   - 2 5 , 7   + 2 5 , 1 6   @ @   c l a s s   C o p y F i l e T o o l ( T o o l B a s e ) : 
 
           t o o l _ n a m e   =   " c o p y _ f i l e " 
 
   
 
           d e f   r u n ( s e l f ,   s o u r c e s :   s t r ,   t a r g e t :   s t r ,   o v e r w r i t e :   b o o l   =   F a l s e )   - >   s t r : 
 
 +                 f r o m   j a n i t o . t o o l s . p a t h _ s e c u r i t y   i m p o r t   i s _ p a t h _ w i t h i n _ w o r k d i r 
 
 +                 w o r k d i r   =   g e t a t t r ( s e l f ,   ' w o r k d i r ' ,   o s . g e t c w d ( ) ) 
 
                   s o u r c e _ l i s t   =   [ s r c   f o r   s r c   i n   s o u r c e s . s p l i t ( )   i f   s r c ] 
 
 +                 #   C h e c k   a l l   s o u r c e s   a n d   t a r g e t   a r e   w i t h i n   w o r k d i r 
 
 +                 f o r   s r c   i n   s o u r c e _ l i s t : 
 
 +                         i f   n o t   i s _ p a t h _ w i t h i n _ w o r k d i r ( s r c ,   w o r k d i r ) : 
 
 +                                 r e t u r n   t r ( "     A c c e s s   d e n i e d :   S o u r c e   p a t h   ' { s r c } '   i s   o u t s i d e   t h e   a l l o w e d   w o r k s p a c e . " ,   s r c = d i s p l a y _ p a t h ( s r c ) ) 
 
 +                 i f   n o t   i s _ p a t h _ w i t h i n _ w o r k d i r ( t a r g e t ,   w o r k d i r ) : 
 
 +                         r e t u r n   t r ( "     A c c e s s   d e n i e d :   T a r g e t   p a t h   ' { t a r g e t } '   i s   o u t s i d e   t h e   a l l o w e d   w o r k s p a c e . " ,   t a r g e t = d i s p l a y _ p a t h ( t a r g e t ) ) 
 
 + 
 
                   m e s s a g e s   =   [ ] 
 
                   i f   l e n ( s o u r c e _ l i s t )   >   1 : 
 
                           i f   n o t   o s . p a t h . i s d i r ( t a r g e t ) : 
 
 d i f f   - - g i t   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / c r e a t e _ f i l e . p y   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / c r e a t e _ f i l e . p y 
 
 i n d e x   f c 4 8 a 2 c . . 8 f d c 8 e 5   1 0 0 6 4 4 
 
 - - -   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / c r e a t e _ f i l e . p y 
 
 + + +   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / c r e a t e _ f i l e . p y 
 
 @ @   - 2 9 , 6   + 2 9 , 1 1   @ @   c l a s s   C r e a t e F i l e T o o l ( T o o l B a s e ) : 
 
           t o o l _ n a m e   =   " c r e a t e _ f i l e " 
 
   
 
           d e f   r u n ( s e l f ,   p a t h :   s t r ,   c o n t e n t :   s t r ,   o v e r w r i t e :   b o o l   =   F a l s e )   - >   s t r : 
 
 +                 f r o m   j a n i t o . t o o l s . p a t h _ s e c u r i t y   i m p o r t   i s _ p a t h _ w i t h i n _ w o r k d i r 
 
 +                 w o r k d i r   =   g e t a t t r ( s e l f ,   ' w o r k d i r ' ,   o s . g e t c w d ( ) ) 
 
 +                 i f   n o t   i s _ p a t h _ w i t h i n _ w o r k d i r ( p a t h ,   w o r k d i r ) : 
 
 +                         r e t u r n   t r ( "     A c c e s s   d e n i e d :   P a t h   ' { d i s p _ p a t h } '   i s   o u t s i d e   t h e   a l l o w e d   w o r k s p a c e . " ,   d i s p _ p a t h = d i s p l a y _ p a t h ( p a t h ) ) 
 
 + 
 
                   e x p a n d e d _ p a t h   =   p a t h     #   U s i n g   p a t h   a s   i s 
 
                   d i s p _ p a t h   =   d i s p l a y _ p a t h ( e x p a n d e d _ p a t h ) 
 
                   p a t h   =   e x p a n d e d _ p a t h 
 
 d i f f   - - g i t   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / m o v e _ f i l e . p y   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / m o v e _ f i l e . p y 
 
 i n d e x   3 f c b 0 8 a . . 6 7 d a 3 e a   1 0 0 6 4 4 
 
 - - -   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / m o v e _ f i l e . p y 
 
 + + +   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / m o v e _ f i l e . p y 
 
 @ @   - 3 0 , 6   + 3 0 , 1 1   @ @   c l a s s   M o v e F i l e T o o l ( T o o l B a s e ) : 
 
                   o v e r w r i t e :   b o o l   =   F a l s e , 
 
                   b a c k u p :   b o o l   =   F a l s e , 
 
           )   - >   s t r : 
 
 +                 f r o m   j a n i t o . t o o l s . p a t h _ s e c u r i t y   i m p o r t   i s _ p a t h _ w i t h i n _ w o r k d i r 
 
 +                 w o r k d i r   =   g e t a t t r ( s e l f ,   ' w o r k d i r ' ,   o s . g e t c w d ( ) ) 
 
 +                 i f   n o t   i s _ p a t h _ w i t h i n _ w o r k d i r ( s r c _ p a t h ,   w o r k d i r )   o r   n o t   i s _ p a t h _ w i t h i n _ w o r k d i r ( d e s t _ p a t h ,   w o r k d i r ) : 
 
 +                         r e t u r n   t r ( "     A c c e s s   d e n i e d :   S o u r c e   o r   d e s t i n a t i o n   p a t h   i s   o u t s i d e   t h e   a l l o w e d   w o r k s p a c e . " ) 
 
 + 
 
                   o r i g i n a l _ s r c   =   s r c _ p a t h 
 
                   o r i g i n a l _ d e s t   =   d e s t _ p a t h 
 
                   s r c   =   s r c _ p a t h 
 
 d i f f   - - g i t   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / r e m o v e _ f i l e . p y   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / r e m o v e _ f i l e . p y 
 
 i n d e x   d a 6 9 a d 6 . . 9 4 2 5 2 8 2   1 0 0 6 4 4 
 
 - - -   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / r e m o v e _ f i l e . p y 
 
 + + +   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / r e m o v e _ f i l e . p y 
 
 @ @   - 2 5 , 6   + 2 5 , 1 1   @ @   c l a s s   R e m o v e F i l e T o o l ( T o o l B a s e ) : 
 
           t o o l _ n a m e   =   " r e m o v e _ f i l e " 
 
   
 
           d e f   r u n ( s e l f ,   p a t h :   s t r ,   b a c k u p :   b o o l   =   F a l s e )   - >   s t r : 
 
 +                 f r o m   j a n i t o . t o o l s . p a t h _ s e c u r i t y   i m p o r t   i s _ p a t h _ w i t h i n _ w o r k d i r 
 
 +                 w o r k d i r   =   g e t a t t r ( s e l f ,   ' w o r k d i r ' ,   o s . g e t c w d ( ) ) 
 
 +                 i f   n o t   i s _ p a t h _ w i t h i n _ w o r k d i r ( p a t h ,   w o r k d i r ) : 
 
 +                         r e t u r n   t r ( "     A c c e s s   d e n i e d :   P a t h   ' { d i s p _ p a t h } '   i s   o u t s i d e   t h e   a l l o w e d   w o r k s p a c e . " ,   d i s p _ p a t h = d i s p l a y _ p a t h ( p a t h ) ) 
 
 + 
 
                   o r i g i n a l _ p a t h   =   p a t h 
 
                   p a t h   =   p a t h     #   U s i n g   p a t h   a s   i s 
 
                   d i s p _ p a t h   =   d i s p l a y _ p a t h ( o r i g i n a l _ p a t h ) 
 
 @ @   - 4 1 , 1 4   + 4 6 , 1 2   @ @   c l a s s   R e m o v e F i l e T o o l ( T o o l B a s e ) : 
 
                           s e l f . r e p o r t _ e r r o r ( t r ( "     P a t h   i s   n o t   a   f i l e . " ) ,   R e p o r t A c t i o n . D E L E T E ) 
 
                           r e t u r n   t r ( "     P a t h   i s   n o t   a   f i l e . " ) 
 
                   t r y : 
 
 - 
 
                           o s . r e m o v e ( p a t h ) 
 
                           s e l f . r e p o r t _ s u c c e s s ( t r ( "     F i l e   r e m o v e d " ) ,   R e p o r t A c t i o n . D E L E T E ) 
 
                           m s g   =   t r ( 
 
                                   "     S u c c e s s f u l l y   r e m o v e d   t h e   f i l e   a t   ' { d i s p _ p a t h } ' . " , 
 
                                   d i s p _ p a t h = d i s p _ p a t h , 
 
                           ) 
 
 - 
 
                           r e t u r n   m s g 
 
                   e x c e p t   E x c e p t i o n   a s   e : 
 
                           s e l f . r e p o r t _ e r r o r ( 
 
 d i f f   - - g i t   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / v i e w _ f i l e . p y   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / v i e w _ f i l e . p y 
 
 i n d e x   1 a d 9 0 7 0 . . d b 7 0 0 d c   1 0 0 6 4 4 
 
 - - -   a / j a n i t o / t o o l s / a d a p t e r s / l o c a l / v i e w _ f i l e . p y 
 
 + + +   b / j a n i t o / t o o l s / a d a p t e r s / l o c a l / v i e w _ f i l e . p y 
 
 @ @   - 3 1 , 6   + 3 1 , 1 1   @ @   c l a s s   V i e w F i l e T o o l ( T o o l B a s e ) : 
 
           d e f   r u n ( s e l f ,   p a t h :   s t r ,   f r o m _ l i n e :   i n t   =   N o n e ,   t o _ l i n e :   i n t   =   N o n e )   - >   s t r : 
 
                   i m p o r t   o s 
 
                   f r o m   j a n i t o . t o o l s . t o o l _ u t i l s   i m p o r t   d i s p l a y _ p a t h 
 
 +                 f r o m   j a n i t o . t o o l s . p a t h _ s e c u r i t y   i m p o r t   i s _ p a t h _ w i t h i n _ w o r k d i r 
 
 + 
 
 +                 w o r k d i r   =   g e t a t t r ( s e l f ,   ' w o r k d i r ' ,   o s . g e t c w d ( ) ) 
 
 +                 i f   n o t   i s _ p a t h _ w i t h i n _ w o r k d i r ( p a t h ,   w o r k d i r ) : 
 
 +                         r e t u r n   t r ( "     A c c e s s   d e n i e d :   P a t h   ' { d i s p _ p a t h } '   i s   o u t s i d e   t h e   a l l o w e d   w o r k s p a c e . " ,   d i s p _ p a t h = d i s p l a y _ p a t h ( p a t h ) ) 
 
   
 
                   d i s p _ p a t h   =   d i s p l a y _ p a t h ( p a t h ) 
 
                   s e l f . r e p o r t _ a c t i o n ( 
 
 