%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/usbcreator/backends/udisks/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/usbcreator/backends/udisks/__pycache__/backend.cpython-312.pyc

�

c�cf���ddlZddlZddlZddlZddlZddlmZmZddlZejdd�ddl
mZmZm
Z
ddlmZddlmZdZd	ZddlZGd
�de�Zy)�N)�
DBusGMainLoop�threads_init�UDisksz2.0)�Gio�GLibr)�Backend)�miscz+/org/freedesktop/UDisks2/block_devices/loop)z*/org/freedesktop/UDisks2/block_devices/dm_z*/org/freedesktop/UDisks2/block_devices/ramz+/org/freedesktop/UDisks2/block_devices/zramz /org/freedesktop/UDisks2/drives/c�R�eZdZd
d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
dd
�Zd�Zd�Z
y)�
UDisksBackendNc�<�tj|�g|_||_t	j
d�t
d��t�|r||_ntj�|_tjjd�|_|jjdd�|_tj"|j d�|_|j j%d|j&�t)j*di�|_y)N�UDisks2BackendT)�set_as_defaultzcom.ubuntu.USBCreatorz/com/ubuntu/USBCreator�Progressza{sv})r�__init__�handles�allow_system_internal�logging�debugrr�bus�dbus�	SystemBusr�Client�new_sync�udisks�
get_object�helper�	Interface�connect_to_signal�got_progressr�Variant�
no_options)�selfrrs   �D/usr/lib/python3/dist-packages/usbcreator/backends/udisks/backend.pyrzUDisksBackend.__init__s�����������%:��"��
�
�&�'��T�*�����D�H��~�~�'�D�H��m�m�,�,�T�2����h�h�)�)�*A�*B�D����n�n�T�[�[�2I�J������%�%�j�$�2C�2C�D��,�,�w��3���c��d}|dk\r	|j|jd�Sy#tj$rH}d|jvr�tjd�tjd�|dz}Yd}~nd}~wwxYw|dk\r���f)	z0Try to mount until it does not fail with "Busy".�
rNzUDisks2.Error.DeviceBusyzBusy.g333333�?��)	�call_mount_syncr!r�GError�messagerr�time�sleep)r"�fs�timeout�es    r#�retry_mountzUDisksBackend.retry_mount/s~������l�
��)�)�$�/�/�4�@�@���
�;�;�
�1�Q�Y�Y�>���
�
�g�&��
�
�3���1����
����l�s�&�B�>A<�<Bc�&�|j|�y�N)�install_progress_cb)r"�completes  r#rzUDisksBackend.got_progress=s��� � ��*r$c����tjd��jj��_�xj
�jj
d�fd��gz
c_�xj
�jj
d�fd��gz
c_�xj
�jj
d�fd��gz
c_�xj
�jj
d�fd	��gz
c_�xj
�jj
d
�fd��gz
c_�jj�D]}�j|��y)
z�Start looking for new devices to add.  Devices added will be sent to
        the fronted using frontend.device_added.  Devices will only be added as
        they arrive if a main loop is present.�detect_deviceszobject-addedc�&���j|�Sr3)�_udisks_obj_added��man�objr"s  �r#�<lambda>z.UDisksBackend.detect_devices.<locals>.<lambda>Hs���t�Oe�Oe�fi�Oj�r$zobject-removedc�B���j|j��Sr3)�_device_removed�get_object_pathr:s  �r#r=z.UDisksBackend.detect_devices.<locals>.<lambda>Is���QU�Qe�Qe�fi�fy�fy�f{�Q|�r$zinterface-addedc�&���j|�Sr3��_device_changed�r;r<�ifacer"s   �r#r=z.UDisksBackend.detect_devices.<locals>.<lambda>Js���Y]�Ym�Ym�nq�Yr�r$zinterface-removedc�&���j|�Sr3rBrDs   �r#r=z.UDisksBackend.detect_devices.<locals>.<lambda>Ks���[_�[o�[o�ps�[t�r$z"interface-proxy-properties-changedc�&���j|�Sr3rB)r;r<rE�props�invalidr"s     �r#r=z.UDisksBackend.detect_devices.<locals>.<lambda>Ls(���}A�}Q�}Q�RU�}V�r$N)	rrr�get_object_manager�managerr�connect�get_objectsr9)r"r<s` r#r7zUDisksBackend.detect_devicesAs���	�
�
�&�'��{�{�5�5�7���������-�-�n�>j�k�l�l��������-�-�.>�@|�}�~�~��������-�-�.?�Ar�s�t�t��������-�-�.A�Ct�u�v�v��������-�-�.R�UV�W�X�	X���<�<�+�+�-�	(�C��"�"�3�'�	(r$c�D�|j�}tD]}|j|�s�y|j�}|sy|j	d�j�}|dk7r*|jj|�j�}nd}|r |j	d�j�ry|j�}|j	d�j�}|jt�}	|js|s|	s|ry|j||||�yyy)N�Drive�/�Optical�
HintSystem)r@�not_interesting�
startswith�	get_block�get_cached_property�
get_stringrr�	get_drive�get_boolean�
get_partition�loop_prefixr�_udisks_drive_added)
r"r<�path�boring�block�
drive_name�drive�part�	is_system�is_loops
          r#r9zUDisksBackend._udisks_obj_addedPs���"�"�$��%�	�F����v�&��	��
�
������.�.�w�7�B�B�D�
�����K�K�*�*�:�6�@�@�B�E��E��U�.�.�y�9�E�E�G��� � �"���-�-�l�;�G�G�I�	��/�/�+�.���%�%�i�7����(�(��e�U�D�A�	<C�ir$c
��tjd|z�|r}|jd�j�}|jd�j�}|jd�j	�}|jd�j�}nBd}d}|jd�j	�}|jd�j�}|dkrtjd�y|||d	|jd
�j�j
d�|tjddd�	|j|<tj|j�r|j|�|j�y)
Nzdrive added: %s�Vendor�Model�Size�IdLabelr(rznot adding device: 0 byte disk.����Devicezutf-8)	�vendor�model�label�free�device�capacity�status�
mountpoint�parent)
rrrVrW�
get_uint64�get_bytestring�decoder	�NEED_FORMAT�targets�callable�target_added_cb�update_free)	r"r<r_rar]rlrm�sizerns	         r#r\z!UDisksBackend._udisks_drive_addedlsO���
�
�'�$�.�/���.�.�x�8�C�C�E�F��-�-�g�6�A�A�C�E��,�,�V�4�?�?�A�D��-�-�i�8�C�C�E�E��F��E��,�,�V�4�?�?�A�D��-�-�i�8�C�C�E�E��1�9��M�M�;�<�������/�/��9�H�H�J�Q�Q�RY�Z���'�'���

����T���=�=��-�-�.�� � ��&����r$c��|j�}tjd|z�|j|�|j	|�y)Nzdevice change %s)r@rrr?r9)r"r<r]s   r#rCzUDisksBackend._device_changed�s@���"�"�$���
�
�(�4�/�0�	
���T�"����s�#r$c�L�tj�d}dD]�}dd|d||g}tj|dd��t	j
|�jdkDs�Ft|�}|j�}|j�t	j|�|cSy)Nr')z/.disk/infoz/.disk/mini-info�osirroxz-devz-extract)�stderr�stdoutr)�tempfile�mkstemp�
subprocess�run�os�stat�st_size�open�read�close�unlink)r"�filename�tmpfile�search�cmd�f�outputs       r#�
_is_casper_cdzUDisksBackend._is_casper_cd�s����"�"�$�Q�'��9�	�F��f�h�
�F�G�L�C��N�N�3�t�D�9��w�w�w��'�'�!�+���M����������	��	�	�'�"��
�	�r$c��tjd|z�tjd|z�|jD]}|jj	|��|j
|d}t
j|||||��y)Nzinstall source: %szinstall target: %srp)rpr)rrrrK�
disconnectryr�install)r"�source�targetr�handle�devs      r#r�zUDisksBackend.install�sz���
�
�*�V�3�4��
�
�*�V�3�4��l�l�	,�F��L�L�#�#�F�+�	,��l�l�6�"�8�,������f�f�S�.C�	Er$c�.�tj|�yr3)r�cancel_install)r"s r#r�zUDisksBackend.cancel_install�s�����t�$r$c��	|jj�y#tj$r}t	j
d�Yd}~yd}~wwxYw)Nz%Could not shut down the dbus service.)r�Shutdownrr*r�	exception)r"r0s  r#�shutdownzUDisksBackend.shutdown�s@��	G��K�K� � �"���{�{�	G����E�F�F��	G�s��A�A
�
A)FN)F)�__name__�
__module__�__qualname__rr1rr7r9r\rCr�r�r�r��r$r#rrs=��4�,�+�
(�B�8�B$��E�%�Gr$r)rrr�r�r��dbus.mainloop.glibrr�gi�require_version�
gi.repositoryrrr�usbcreator.backends.baser�
usbcreatorr	r[rSr,rr�r$r#�<module>r�sY����	���:�	�����8�U�#�+�+�,��;�����`G�G�`Gr$

Zerion Mini Shell 1.0