HOME


Mini Shell 1.0
DIR: /usr/lib/python3/dist-packages/CommandNotFound/db/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/CommandNotFound/db/__pycache__/creator.cpython-312.pyc
�

{��c�/���ddlZddlZddlZddlZddlZddlZddlZddlZddlZej�dddddddd�Z
d	ZGd
�d�Zd�Z
Gd
�d�Zedk(r�ej ej"��eej&�dkrXedej&dz�edej&dz�edej&d�ej*d�eej&dd�Zej/ej&d�ej0j3�D]\ZZej8e�de����yy)�N�x�d�P�<�(�)�main�universe�contribznon-free-firmware�
restrictedznon-free�
multiversea�
           CREATE TABLE IF NOT EXISTS "commands" 
           (
            [cmdID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
            [pkgID] INTEGER NOT NULL,
            [command] TEXT,
            FOREIGN KEY ([pkgID]) REFERENCES "pkgs" ([pkgID])
           );
           CREATE TABLE IF NOT EXISTS "packages"
           (
            [pkgID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
            [name] TEXT,
            [version] TEXT,
            [component] TEXT,
            [priority] INTEGER
           );
           CREATE INDEX IF NOT EXISTS idx_commands_command ON commands (command);
           CREATE INDEX IF NOT EXISTS idx_packages_name ON packages (name);
c��eZdZd�Zd�Zd�Zy)�measurec� �||_||_y�N)�what�stats)�selfrrs   �</usr/lib/python3/dist-packages/CommandNotFound/db/creator.py�__init__zmeasure.__init__>s����	���
�c�6�tj�|_yr)�time�now)rs r�	__enter__zmeasure.__enter__As���9�9�;��rc���|j|jvrd|j|j<|j|jxxtj�|jz
z
cc<y)Nr)rrrr)r�argss  r�__exit__zmeasure.__exit__CsK���y�y�D�J�J�&�$%�D�J�J�t�y�y�!��
�
�4�9�9������t�x�x�!7�7�rN)�__name__�
__module__�__qualname__rrr�rrrr=s����8rrc��	tj|�y#t$r(}|jtjk7r�Yd}~yd}~wwxYwr)�os�remove�OSError�errno�ENOENT)�path�es  r�rm_fr+Is:���
�	�	�$������7�7�e�l�l�"��#���s��	A	�A�A	c�T�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zy
)�	DbCreatorc��||_tj�d|_dt	j�d�|_y)Nr)�total�
total_time)�files�apt_pkg�get_architectures�primary_archrr)rr1s  rrzDbCreator.__init__Rs1����
�#�5�5�7��:��� �t�y�y�{�;��
rc��|dz}|j|�stjd|�y|dz}tj|�5}	|jt�|j|�ddd�t|�tj||�t!|d�5}t#j$|j'�|�ddd�y#tj$rF}t|�dk(r,tjd|�tjd�n|�Yd}~��d}~wwxYw#1swY��xYw#1swYyxYw)Nz	.metadataz0%s does not require an update (inputs unchanged)z.tmpzdatabase is lockedz*%s is locked by another process. Ignoring.r�w)�_db_update_needed�logging�info�sqlite3�connect�
executescript�
create_db_sql�_fill_commands�OperationalError�str�warning�sys�exitr+r$�rename�open�json�dump�_calc_input_metadata)r�dbname�
metadata_file�tmpdb�conr*�fps       r�createzDbCreator.createVs���{�*�
��%�%�m�4��L�L�B�F�
L���v�
��
�_�_�U�
#�
	�s�
��!�!�-�0��#�#�C�(�
	�	
�]��
�	�	�%�� �
�-��
%�	7���I�I�d�/�/�1�2�6�	7�	7���+�+�	
��q�6�1�1��O�O�D�e�M��H�H�Q�K��G� ��	
��	
	�
	��&	7�	7�s<�D/�
&C�%%D;�D,�&<D'�"D/�'D,�,D/�/D8�;Ec�.�tjj|�sy	t|�5}t	j
|�}ddd�|j
�k7S#1swY�xYw#t$r!}tjd||�Yd}~yd}~wwxYw)NTzcannot read %s: %s)
r$r)�existsrErF�loadrH�	Exceptionr8rA)rrJrM�metar*s     rr7zDbCreator._db_update_neededrs���w�w�~�~�m�,��	��m�$�
%���y�y��}��
%��4�4�4�6�6�6�
%�
%���	��O�O�0�-��C���	�s.�A*�A�A*�A'�#A*�*	B�3B�Bc���i}|jD]_}tj|�}|j|j|j
|j|j|jd�||<�a|S)N)�st_ino�st_dev�st_uid�st_gid�st_size�st_mtime)	r1r$�statrUrVrWrXrYrZ)rrS�p�sts    rrHzDbCreator._calc_input_metadata|sc�������		�A������B��)�)��)�)��)�)��)�)��:�:��K�K�
�D��G�		��rc�p�|jD]�}tjdd|gtj��5}d|vr|j	|||j
�n|j
||j
�|j�dk7r0tj|jdj|����	ddd���tj�|jdz
|jd<tjd	|jd
|jdfz�y#1swY��(xYw)Nz/usr/lib/apt/apt-helperzcat-file)�stdout�Contentsrz#/usr/lib/apt/apt-helper cat-file {})�
returncode�cmdr0zprocessed %i packages in %.2fsr/)r1�
subprocess�Popen�PIPE�_parse_single_contents_filer_�_parse_single_commands_file�wait�CalledProcessErrorra�formatrrr8r9)rrL�f�subs    rr>zDbCreator._fill_commands�s�����	n�A��!�!�#<�j�!�"L�U_�Ud�Ud�e�
n�il���?��4�4�S�!�S�Z�Z�H��4�4�S�#�*�*�E��8�8�:��?�$�7�7�3�>�>�=b�=i�=i�jk�=l�n�n�#�
n�
n�	n�$(�9�9�;����L�1I�#I��
�
�<� ����5��J�J�w�����L�!9�9;�;�	<�
n�
n�s�BD+�+D5	c�J�|jd||f�j�}|S)Nz�
            SELECT packages.pkgID, name, version 
            FROM commands 
            INNER JOIN packages on packages.pkgID = commands.pkgID
            WHERE commands.command=? AND packages.name=?;
            ��execute�fetchone)rrL�command�pkgname�
already_in_dbs     r�_in_dbzDbCreator._in_db�s3�����
�
�7�#�
%�&.�X�Z�
	��rc�P�|jd|f�|jd|f�y)Nz"DELETE FROM packages WHERE pkgID=?z"DELETE FROM commands WHERE pkgID=?�ro)rrL�pkgids   r�
_delete_pkgidzDbCreator._delete_pkgid�s$�����8�5�(�D����8�5�(�Drc�T�|jd|f�j�}|r|dSy)Nz'SELECT pkgID from packages WHERE name=?rrn)rrLrr�have_pkgs    r�
_get_pkgidzDbCreator._get_pkgid�s2���;�;�5��z�C�CK�8�:�	���A�;��rc�F�|jd||||f�}|jS)Nzt
            INSERT INTO packages (name, version, component, priority)
            VALUES (?, ?, ?, ?);
            )ro�	lastrowid)rrLrr�version�	component�priority�curs       r�_insert_packagezDbCreator._insert_package�s/���K�K���7�I�x�8�
:���}�}�rc�,�|jd||f�y)NzF
        INSERT INTO commands (command, pkgID) VALUES (?, ?);
        rv)rrLrq�pkg_ids    r�_insert_commandzDbCreator._insert_command�s�������v�
�	 rc��tj|�}|j�sy|jd}|j	d�ry|jd}|jd}|dk7r||j
k7ry|j��r�|jdxxdz
cc<|jd}|jjd	�r|jd	}|jjd
d�}t�}	|jjdd�r4t|jjdd�jd
��}	|jdjd
�D�]�}
|
|	vr�	td|j�5|j||
|�}ddd�r�tj||d�dkDrMtjd|
z�td|j�5|j||d�ddd�ntjd|
�d|�d����tjd|
�d|�d|�d|�d�	�td|j�5|j!||�}ddd�srt"j|d�}
|
t%|jjdd��z
}
td|j�5|j'|||||
�}ddd�td|j�5|j)||
|�ddd����|j�r���yy#1swY���xYw#1swY��'xYw#1swY��xYw#1swY�xxYw#1swY��xYw) N�suitez
-backportsr�arch�allr/��namezvisible-pkgnamer~�zignore-commands�,�commands�sql_already_db�rz+replacing exiting %s in DB (higher version)�sql_delete_already_in_db�	skipping � from � (lower/same version)�adding �/� (�)�sql_have_pkgzpriority-bonus�0�sql_insert_pkg�sql_insert_cmd)r2�TagFile�step�section�endswithr4r�get�set�splitrrt�version_comparer8�debugrxr{�component_priorities�intr�r�)rrLrM�tagfr�rr�rrr~�ignore_commandsrqrsr�r�s              rrgz%DbCreator._parse_single_commands_file�s�����r�"���y�y�{���l�l�7�#���>�>�,�'���,�,�{�+�	�
�\�\�&�
!���5�=�T�T�%6�%6�6���i�i�k��J�J�w��1�$���L�L��(�G��|�|��� 1�2��,�,�'8�9���L�L�$�$�Y��3�G��E�O��|�|��� 1�2�6� #�D�L�L�$4�$4�5F��$K�$Q�$Q�RU�$V� W���<�<�
�3�9�9�#�>�
?���o�-���-�t�z�z�:�E�"&�+�+�c�7�G�"D�M�E� ��.�.�w�
�a�8H�I�A�M��
�
�&S�V]�&]�^�$�%?����L�F� �.�.�s�M�!�4D�E�F�F� �
�
�T[�]b�&c�d� ��
�
��W�g�u�6�7��^�T�Z�Z�8�;�!�_�_�S�'�:�F�;��3�7�7�	�1�E�H���D�L�L�$4�$4�5E�s�$K� L�L�H� �!1�4�:�:�>�b�!%�!5�!5�c�7�G�Y�X`�!a��b��-�t�z�z�:�?��(�(��g�v�>�?�?�5
?��i�i�k�k� E�E��F�F��;�;��
b�b��?�?�s<�M�7M�+M�M)�M5�M
	�M	�M&	�)M2	�5M?	c
�"�d}|D�]#}|jd�}|jd�s4|jd�s#|jd�s|jd�s�Z	|jdd�\}}tj
j
|�}|jd�D�]�}	|j�jdd�\}	}t|	jd��d
k(r|	jd�\}
}	nd}
d}td|j�5|j|||�}ddd�r	tj d|�d|�d����tj d|�d|�d|�d|�d�	�td|j�5|j%||�}
ddd�
sJt&j)|
d
�}td|j�5|j+||||
|�}
ddd�td|j�5|j-|||
�ddd������&y#t$rY��4wxYw#t$r|j�}d	}	Y���wxYw#1swY��4xYw#1swY��xYw#1swY��xYw#1swY���xYw)Nzutf-8zusr/sbinzusr/bin�bin�sbinr�r�r��unknownr�r	r�rr�r�r�r�r�r�r�r�r�)�decode�
startswithr��
ValueErrorr$r)�basename�strip�rsplit�lenrrrtr2r�r8r�rxr{r�r�r�r�)rrLrkrMr��lrq�pkgnamesrrr�rr~rsr�r�s               rrfz%DbCreator._parse_single_contents_file�se�����0	?�A�����!�A��L�L��,����Y�0G��L�L��'�1�<�<��+?��
�$%�G�G�D�!�$4�!����g�g�&�&�w�/�G�#�>�>�#�.�$
?��(�'.�}�}��'=�'=�c�1�'E�$�G�W��w�}�}�S�)�*�a�/�)0���s�);�&�I�w� &�I����-�t�z�z�:�E�"&�+�+�c�7�G�"D�M�E� ��
 �
�
�T[�]b�&c�d� ��
�
��W�g�u�6�7��^�T�Z�Z�8�;�!�_�_�S�'�:�F�;��3�7�7�	�1�E�H� �!1�4�:�:�>�b�!%�!5�!5�c�7�G�Y�X`�!a��b��-�t�z�z�:�?��(�(��g�v�>�?�?�G$
?�0	?���
��
��"�(�%�m�m�o�G�'�G�(��E�E��;�;��b�b��?�?�sT� H-�*#H=�I�
I,�I8�
J�-	H:�9H:�=I�I�I)�,I5�8J�JN)rr r!rrNr7rHr>rtrxr{r�r�rgrfr"rrr-r-Qs@��<�7�8	��
<��E��� �7?�r4?rr-�__main__)�level�z%usage: %s <output-db-path> <files...>z. e.g.: %s commands.db ./dists/*/*/*/Commands-*zP e.g.: %s /var/lib/command-not-found/commands.db  /var/lib/apt/lists/*Commands-*r�r�z: )r'rFr8r$r:rcrBrr2�initr�r=rr+r-r�basicConfig�INFOr��argv�printrC�colrNr�itemsr[�amountr�r"rr�<module>r�sL��
���	���
��������
����������
�:	8�	8��O?�O?�d�z���G���g�l�l�+�
�3�8�8�}�q��
�5������C�D�
�>����!��L�M�
�`�be�bj�bj�kl�bm�n�������
�C�H�H�Q�R�L�
!�C��J�J�s�x�x��{���	�	���)�1���f���
�
�$��/�0�1�r