JFIF$        dd7 

Viewing File: /usr/share/l.v.e-manager/utils/__pycache__/ui_package_installer.cpython-311.pyc

�

"C�g����ddlmZddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
mZGd�de��ZGd	�d
��ZdS)�)�absolute_import)�division)�print_functionN)�Enum)�is_nginx_running�	is_ubuntuc��eZdZdZdZdZdS)�State�	installed�
installing�
not_installedN)�__name__�
__module__�__qualname__�	INSTALLED�
INSTALLING�
NOT_INSTALLED���6/usr/share/l.v.e-manager/utils/ui_package_installer.pyr
r
s�������I��J�#�M�M�Mrr
c�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�UIPackageInstallerc�0�||_||_||_dS)N)�PACKAGE_NAME�PACKAGE_PATH�PACKAGE_INSTALL_ERROR_LOG)�self�package_name�package_path�error_log_paths    r�__init__zUIPackageInstaller.__init__s ��(���(���)7��&�&�&rc��t��r|���n|���tjS)z8Initiates the installation process based on the OS type.)r�_install_package_apt�_install_package_yumr
r�rs r�installzUIPackageInstaller.install$s>���;�;�	(��%�%�'�'�'�'��%�%�'�'�'���rc	�<�t|jd��5}	tj|ttjd��||dd���n9#t$r,}|�t|����Yd}~nd}~wwxYwddd��dS#1swxYwYdS)z/Executes the given command and logs any output.�wT�	/bin/bash)�stdin�stdout�stderr�shell�
executableN)	�openr�
subprocess�Popen�os�devnull�	Exception�write�str)r�command�logger�es    r�_run_commandzUIPackageInstaller._run_command,s���
�$�0�#�
6�
6�		%�&�
%�� ��'+�B�J��'<�'<�(.�(.�'+�,7�9�9�9�9�9���
%�
%�
%����S��V�V�$�$�$�$�$�$�$�$�����
%����		%�		%�		%�		%�		%�		%�		%�		%�		%�		%�		%�		%����		%�		%�		%�		%�		%�		%s:�B�2A�
B�
B�"A<�7B�<B�B�B�Bc�x�d�|j��}|�|��tjS)zInstalls the package using YUM.zyum install -y {}��formatrr:r
r�rr7s  rr$z'UIPackageInstaller._install_package_yum9s5��%�,�,�T�->�?�?�����'�"�"�"���rc�x�d�|j��}|�|��tjS)zInstalls the package using APT.z*apt-get update -y && apt-get install -y {}r<r>s  rr#z'UIPackageInstaller._install_package_apt?s5��>�E�E�d�FW�X�X�����'�"�"�"���rc���|���tjkrtjStj�|j��rtjntjS)zAChecks if the package is installed, installing, or not installed.)	�
_check_statusr
rr2�path�existsrrrr%s r�check_installedz"UIPackageInstaller.check_installedFsJ�������5�#3�3�3��#�#�&(�g�n�n�T�5F�&G�&G�`�5�?�?�U�M`�`rc�B�g}t��rd�|j��dg}nd�|j��g}|D]I}	tjdd|gtjd���tjcS#tj$rY�FwxYwtj	S)z4Checks the installation status based on the OS type.z,/bin/ps aux | grep "[a]pt-get install -y {}"z%/bin/ps aux | grep "[a]pt-get update"z(/bin/ps aux | grep "[y]um install -y {}"r)�-cT)r,�text)
rr=rr0�check_output�STDOUTr
r�CalledProcessErrorr)r�commands�cmds   rrAz UIPackageInstaller._check_statusMs������;�;�	^�>�E�E�d�FW�X�X�7��H�H�
C�I�I�$�J[�\�\�]�H��	�	�C�
��'��d�C�(@��IZ�ae�f�f�f�f��'�'�'�'���0�
�
�
���
�����"�"s�/B�B�Bc��t|jd��5}|���cddd��S#1swxYwYdS)z5Fetches the log from the installation error log file.�rN)r/r�read)r�files  r�get_logzUIPackageInstaller.get_log`s���
�$�0�#�
6�
6�	�$��9�9�;�;�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�7�;�;c��td�tjd��d�|j��d�|j��d�|j����td��dS)Nzusage: {} {{-h|-i|-c}}
rzIwhere:
	-h, --help: show help message
	-i, --install: install {} package
z)	-c, --check: check status of {} package
z-	-l, --log: print the log file of {} package
�)�printr=�sys�argvr�exitr%s r�usagezUIPackageInstaller.usagees|��
�(�/�/�����<�<�6�6<�f�T�=N�6O�6O�;�B�B�4�CT�U�U�?�F�F�t�GX�Y�Y�	[�	[�	[�	
�Q�����rc��	tj|dgd���\}}n)#tj$r|���YnwxYw|s|���d}|D]r\}}|dvr|����|dvr|���j}�<|dvr|���j}�Z|dvr|���}�sttj	dtj
��|d�����dS)	N�hicl)�helpr&�check�log)z-hz--help)z-iz	--install)rFz--check)z-lz--log�success)�result�	timestamp�response)�getopt�GetoptErrorrXr&�valuerDrQrT�json�dumps�time)r�args�opts�_r_�os      r�runzUIPackageInstaller.runns<��	��m�D�&�2U�2U�2U�V�V�G�D�!�!���!�	�	�	��J�J�L�L�L�L�L�	�����	��J�J�L�L�L����	(�	(�D�A�q��$�$�$��
�
������)�)�)������-����'�'�'��-�-�/�/�5����o�%�%��������
�d�j�������
�
���	�	�	�	�	s��#A�AN)
rrrr!r&r:r$r#rDrArQrXrlrrrrrs�������8�8�8�
 � � �%�%�%� � � � � � �a�a�a�#�#�#�&���
�������rr)�
__future__rrrr2rUrergrbr0�enumr�clcommon.utilsrrr
rrrr�<module>rps��'�&�&�&�&�&�������%�%�%�%�%�%�	�	�	�	�
�
�
�
���������
�
�
�
�����������6�6�6�6�6�6�6�6�$�$�$�$�$�D�$�$�$�i�i�i�i�i�i�i�i�i�ir
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg