U
    ]´_ó  ã                	   @   s¾  d dl Z d dlZd dlZd dlZd dlZdZefdd„Zefdd„Zedkrºe 	¡ d ksle
dƒ e  d	¡ d
e jd < ejejddd e de jd   ¡ ej e¡s¼e d¡ e  d ¡ ej e¡d krêe d¡ e e¡ e  d ¡ ed e d¡ Ze de ¡ e ee¡ dZzdd„ edƒD ƒZW n* ek
rZ   e d¡ e  d ¡ Y nX eD ]Zedkr`dZ q|q`esºeeƒ*Zde ¡ kr°e de ¡ edƒ W 5 Q R X dS )é    Nz/etc/X11/xorg.confc              
   C   s  t j |¡st d| ¡ dS g }t|ƒt}|D ]h}| d¡d  ¡ }| ¡  	d¡rŽ| 
d|  ¡rŽt d| ¡  ¡ d| }t d	| ¡  ¡ | |¡ q0W 5 Q R X t|ƒb}| ¡ |kr
t d
|| |f ¡ t|d dƒ}| d |¡¡ W 5 Q R X t  |d |¡ W 5 Q R X dS )zf
    this removes old_driver driver from the xorg.conf and substitutes it with
    the new_driver
    úfile %s not foundNú#r   Údriverú"%s"úline '%s' foundz	Driver	"%s"
úreplacing with '%s'zsaving new %s (%s -> %s)ú	.xorg_fixÚwÚ ©ÚosÚpathÚexistsÚloggingZwarningÚopenÚsplitÚstripÚlowerÚ
startswithÚendswithÚdebugÚrstripÚappendÚ	readlinesÚinfoÚwriteÚjoinÚrename)Ú
old_driverZ
new_driverÚxorgÚcontentÚ	xorg_fileÚlineÚsÚxorg_fix_file© r%   úB/usr/lib/python3/dist-packages/DistUpgrade/xorg_fix_proprietary.pyÚreplace_driver_from_xorg   s,    
ÿ
ÿr'   c              
   C   s  t j |¡st d| ¡ dS g }t|ƒt}|D ]h}| d¡d  ¡ }| ¡  	d¡rŽ| 
d|  ¡rŽt d| ¡  ¡ d| }t d	| ¡  ¡ | |¡ q0W 5 Q R X t|ƒ`}| ¡ |krt d
|| f ¡ t|d dƒ}| d |¡¡ W 5 Q R X t  |d |¡ W 5 Q R X dS )z3
    this comments out a driver from xorg.conf
    r   Nr   r   r   r   r   z#%sr   zsaving new %s (commenting %s)r   r	   r
   r   )r   r   r    r!   r"   r#   r$   r%   r%   r&   Úcomment_out_driver_from_xorg.   s,    
ÿ
ÿr(   Ú__main__zNeed to run as rooté   z/usr/bin/do-release-upgradez$/var/log/dist-upgrade/xorg_fixup.logr	   )ÚlevelÚfilenameÚfilemodez
%s runningzNo xorg.conf, exitingz xorg.conf is zero size, removingz.dist-upgrade-z
%Y%m%d%H%Mzcreating backup '%s'Fc                 C   s   g | ]}|  ¡ d  ‘qS )r   )r   )Ú.0r"   r%   r%   r&   Ú
<listcomp>l   s     r/   z/proc/moduleszCan't read /proc/modulesÚnvidiaTzRemoving nvidia from %s)Úsysr   r   ÚtimeZshutilZ	XORG_CONFr'   r(   Ú__name__ÚgetuidÚprintÚexitÚargvZbasicConfigÚDEBUGr   r   r   ÚgetsizeÚremoveÚstrftimeZbackupr   Úcopyr0   r   ZmodsÚIOErrorÚmZxorg_conf_fileÚreadr%   r%   r%   r&   Ú<module>   sT   


þ








