
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
KlfU                 @   sT   d dl Z d dlZG dd deZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dS )    Nc               @   s   e Zd Zdd ZdddZdS )PathChooserc             C   s   t  | _tjj|s(d| _d| jd< d S || _tjd}tjd}t|d`}xXt	|D ]L\}}|j
|rlqX|j
|}|std||d f |jd	| j|jd< qXW W d Q R X d S )
Nz
(defaults)zJ/usr/share/selinux/default:/usr/share/selinux/mls:/usr/share/selinux/develSELINUX_DEVEL_PATHz^\s*(?:#.+)?$z^\s*(\w+)\s*=\s*(.+?)\s*$rz(%s:%d: line is not in key = value format      )dictconfigospathexistsconfig_pathnamerecompileopen	enumeratematch
ValueErrorgroup)selfpathnameignoreZconsiderfdlinenolinemo r   /usr/lib/python3.6/defaults.py__init__   s     



 
zPathChooser.__init__r   c             C   sp   | j j|d }|d kr(td|| jf |jd}x*|D ]"}tjj||}tjj|r8|S q8W tjj|d |S )Nz%s was not in %s:r   )	r   getr   r   splitr	   r
   joinr   )r   ZtestfilenameZpathsetpathsptargetr   r   r   __call__,   s    

 zPathChooser.__call__N)r   )__name__
__module____qualname__r   r%   r   r   r   r   r      s   r   c               C   s   dS )Nz/var/lib/sepolgenr   r   r   r   r   data_dir;   s    r)   c               C   s
   t  d S )Nz	/perm_map)r)   r   r   r   r   perm_map>   s    r*   c               C   s
   t  d S )Nz/interface_info)r)   r   r   r   r   interface_infoA   s    r+   c               C   s
   t  d S )Nz/attribute_info)r)   r   r   r   r   attribute_infoD   s    r,   c              C   s(   t d} | d}tjj|s$| d}|S )Nz/etc/selinux/sepolgen.confMakefilezinclude/Makefile)r   r	   r
   r   )chooserresultr   r   r   refpolicy_makefileG   s
    r0   c              C   s   t d} | dS )Nz/etc/selinux/sepolgen.confinclude)r   )r.   r   r   r   headersN   s    r2   )
r	   r   objectr   r)   r*   r+   r,   r0   r2   r   r   r   r   <module>   s   "