
    f                     D    d dl Z d dlZd dlZd dlmZ  G d d          ZdS )    N)datetimec                   &    e Zd Zd Zd Z	 	 ddZdS )Runerc                 B    || _         | j         j        d         | _        d S )Nlog)edirslogdir)selferimps     !/home/ernad/ernad/python/runer.py__init__zRuner.__init__
   s    fk%(t    c                 0   | j         dz   |z   dz   }t          j        |           t          |d          }| j         dz   |z   dz   }t          |d          }t	          j        |dd||           |                                 |                                 d S )N/z.outw.errT)shellcheckstderrstdout)r
   filerprepareopen
subprocessrunclose)r   commandloggerout_fufiout_fileerr_fufierr_files          r   r   z	Runer.run   s    ;$v-6h#&&;$v-6#&&wt4&	( 	( 	( 	(r   Q Fc                 t   | j         dz   |z   dz   }t          j        |           d}t          j                                        |          }t          j                            |          r|rd S t          j                            |          sAt          |d          }|
                    d|z   dz              |                                 n,t          j        |          }	|	|k     rAt          |d          }|
                    d|z   dz              |                                 d	S | j         dz   |z   d
z   }
t          |d          }|                                }|                                 t          |
d          }|
                    d           |
                    |           |
                    d           |                                 	 t          j        |           n# t          $ r Y nw xY w|                     ||           	 t          j        |           n# t          $ r Y nw xY wdS )Nr   z.locku   %Y‒%m‒%d %H:%M:%SZr   z	start at 
azseen at Fr   rzI removed a lock:
zEnd of lock.
T)r
   r   r   r   nowstrftimeospathisfiler   writer   agereadremoveOSErrorr   )r   r   r   timeoutdo_skip	lock_fufipretty_format
pretty_now	lock_filelock_ager"   lock_stringr#   s                r   run_with_lockzRuner.run_with_lock   s:   K#%.8	i   0\^^,,];;
7>>)$$ 	 	4w~~i(( 	Y,,IOOK*4t;<<<OOy++H'!! C00	
Z 7$ >???!!!u;,v5> C00	'nn..!!!#..4555{+++/000   Ii((((   D&!!!	Ii     	 	 	D	ts$   G, ,
G98G9H( (
H54H5N)r$   F)__name__
__module____qualname__r   r   r;    r   r   r   r      sN          
	 	 	 6;#' ' ' ' ' 'r   r   )r+   r   r   r   r   r?   r   r   <module>r@      sg    				           9 9 9 9 9 9 9 9 9 9r   