a
    'a/                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ G dd dZdS )    N)Abovo)Folder)Otria)Rexer)Rixer)Riffer)Recon)Report)Transc                   @   sx   e Zd ZdddZdd Zdd Zdd	 Zd
d ZdddZdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )ErimpFc                 C   s   || _ d | _t| d}|| _| | || _|   d | _d | _|j	| _	|j
| _
|   |   |   |   | | | | |   |   d S )Ne)bipas
given_fufir   abovo	use_abovo
do_verbosefill_for_impnagiven_repcodegiven_issuedatensextfirst_helpers	read_conffill_reconsfill_issuedateshint_repcodehint_issuedatesecond_helpersfill_learist)selfr   r   r    r!   !/home/ernad/ernad/python/erimp.py__init__   s(    



zErimp.__init__c                 C   s   | j d d d }tj|s*td| t| }i }|D ]B}| jj	d 
|}|d}|d u rjq@t|d}|||< q@|| _|S )NZstyle/zconf.xslt.xmlzI don't see Z	conf_line      )dirsospathisfile	ExceptionfilerZsread
splitlinesRZrsmatchgroupstringsZde_xmlZconf)r    ZfufiZ
conf_linesclinematcheskeyvaluer!   r!   r"   r   -   s    

zErimp.read_confc                 C   s`   | j }i | _| j j| jd< |jd D ]}|jd | | j|< q$|j|| d| _|j| _|| _ d S )Nhometopr   )r   r'   Zhome_dirZguess_impnaimpnar   )r    r   r   Ztopdirr!   r!   r"   r   >   s    zErimp.use_abovoc                 C   s6   t | | _t| | _t| | _t| | _t| | _	d S N)
r   dr   fr   r.   r
   tr   xr    r!   r!   r"   r   K   s
    



zErimp.first_helpersc                 C   s   t | | _d S r:   )r   or?   r!   r!   r"   r   R   s    zErimp.second_helpersNc                 C   s   t | dstd| j}|jd D ]}| j| d | j | j|< q"| D ]V}|dkr`tdqJ|j| D ]4}| jj|d |  }| j| d | }|| j|< qjqJ| jj| d d S )	Nr9   zI need an impna.Zresignr$   ZblaZblattZdir_r   )hasattrr+   r   r'   r9   Zforked_dirnasZ	constantsZset_blatt_dirs)r    r9   Z	do_creater   Zdirnakindr6   Zfudir!   r!   r"   r   U   s    
zErimp.fill_for_impnac                 C   s   t | }|d}|d}|| _i | _i | _i | _i | _|D ]@}|| | j|< ||v rdd | j|< n
d | j|< t| || j|< q>d S )N	availableZenabled)r   fillreconsZlivedeadZreportsreportr	   )r    reconZrecons_availableZrecons_enabledrepcoder!   r!   r"   r   i   s    


zErimp.fill_reconsc                 C   s2   t | j| jd }|  |d | _|| _d S )Nissuesr   )sortedr;   Zdatesr'   reverseZmax_issuedate
issuedates)r    rM   r!   r!   r"   r   }   s    
zErimp.fill_issuedatesc                 C   s*   | j jD ]}| jd d | | j|< qd S )NZlearnr$   )r   Zlearistsr'   )r    Zlearistr!   r!   r"   r      s    zErimp.fill_learistc                 C   s   | j | jd | _d S )NrJ   )r;   Zdates_uniquer'   rJ   r?   r!   r!   r"   fill_issues   s    zErimp.fill_issuesc                 C   sd   |D ]*}| j D ]}||v r|| _|    S qqt d}|D ]}|| j v rB|| _|  S qBd S )Nr$   )rE   r   r(   getcwdsplit)r    r   biparI   r'   folderr!   r!   r"   r      s    


zErimp.hint_repcodec                 C   s4   | j D ](}|D ]}||v r|| _|    S qqd S r:   )rM   r   )r    r   Z	issuedaterQ   r!   r!   r"   r      s    
zErimp.hint_issuedatec                 C   s   d}t j|rdS dS )Nz/etc/wpa_supplicant.confTF)r(   r)   r*   )r    Z	test_fufir!   r!   r"   
is_testing   s    zErimp.is_testing)F)NF)__name__
__module____qualname__r#   r   r   r   r   r   r   r   r   rN   r   r   rS   r!   r!   r!   r"   r      s   

r   )r(   r1   r,   r   r   rR   r   Zotriar   Zrexerr   Zrixerr   Zrifferr   rH   r   rG   r	   Ztransr
   r   r!   r!   r!   r"   <module>   s   