B
    v&`
                 @   s   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 e  d dlT d dl	Z	dd	 Z
d
d Zdd Zdd ZdddZdd ZdS )    )print_function)absolute_import)division)unicode_literals)standard_library)*Nc             C   s   | d dkr|dkrdS dS )Nr   "    )lineisquotfr
   r
   )/usr/share/cagefs-plugins/exec_command.py
first_quot   s    r   c             C   s$   | t | d  dkr |dkr dS dS )Nr	   r   r   )len)r   r   r
   r
   r   	last_quot   s    r   c             C   s   |  d} d}d}g }xtt| D ]p}| | dkr$t| | |dkrTd}| | }q$t| | |dkrd}|d| |  7 }|| q$|| |  q$W t| d S )N r    r	   )splitranger   r   r   appendprint)commandZisquotZresresultir
   r
   r   parse_command   s"    

r   c          
   C   s   g }yHt j| dt jdd}x.|j }|s,P | dkr||  qW W n2 tk
r~ } ztdt	|  W d d }~X Y nX |S )NT)shellstdouttextr   zCall process error: )

subprocessPopenPIPEr   readlinestripr   	Exceptionr   str)r   r   poutputinstr
   r
   r   exec_command1   s    
"r(   Fc             C   sr   yN|r&t j| dt jt jtddd}nt j| dt jtddd}| \}}W n tk
rl   td|  g S X |S )NTz	/dev/null)r   r   stderrstdinr   )r   r   r*   r   zError: failed to run )r   r   r    ZSTDOUTopenZcommunicateOSErrorr   )r   Zmerge_stderrr%   out_r
   r
   r   exec_command_null_input@   s     

r/   c             C   s&   t | }x|D ]}||kr|S qW dS )N)r(   )r   Z	substringr   r   r
   r
   r   exec_command_find_substringU   s
    
r1   )F)Z
__future__r   r   r   r   Zfuturer   Zinstall_aliasesbuiltinsr   r   r   r   r(   r/   r1   r
   r
   r
   r   <module>   s   
