Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/CommandNotFound/db/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/CommandNotFound/db/__pycache__/creator.cpython-310.pyc
o

���a�/�@s<ddlZddlZddlZddlZddlZddlZddlZddlZddlZe�	�ddddddd�Z
d	ZGd
d�d�Zdd
�Z
Gdd�d�Zedkr�ejejd�eej�dkrvedejd�edejd�edejd�e�d�eejdd��Ze�ejd�ej��D]\ZZe�deef�q�dSdS)�N�x�d�P�<�(�)�main�universe�contrib�
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@s$eZdZdd�Zdd�Zdd�ZdS)�measurecCs||_||_dS�N)�what�stats)�selfrr�r�</usr/lib/python3/dist-packages/CommandNotFound/db/creator.py�__init__=s
zmeasure.__init__cCst��|_dSr)�time�now)rrrr�	__enter__@szmeasure.__enter__cGs:|j|jvrd|j|j<|j|jt��|j7<dS)Nr)rrrr)r�argsrrr�__exit__Bs"zmeasure.__exit__N)�__name__�
__module__�__qualname__rrrrrrrr
<sr
c
CsFzt�|�WdSty"}z|jtjkr�WYd}~dSd}~wwr)�os�remove�OSError�errno�ENOENT)�path�errr�rm_fHs���r$c@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�	DbCreatorcCs(||_t��d|_dt��d�|_dS)Nr)�total�
total_time)�files�apt_pkg�get_architectures�primary_archrr)rr(rrrrQszDbCreator.__init__cCs|d}|�|�st�d|�dS|d}t�|��<}z|�t�|�|�Wn'tjyN}zt	|�dkrBt�
d|�t�d�n|�WYd}~nd}~wwWd�n1sYwYt
|�t�||�t|d��}t�|��|�Wd�dS1s�wYdS)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#�fprrr�createUs8
�
������"�zDbCreator.createc
Cs�tj�|�sdSz t|��
}t�|�}Wd�n1swY||��kWStyB}zt�	d||�WYd}~dSd}~ww)NTzcannot read %s: %s)
rr"�existsr;r<�loadr>�	Exceptionr.r7)rr@rC�metar#rrrr-qs
���zDbCreator._db_update_neededcCs@i}|jD]}t�|�}|j|j|j|j|j|jd�||<q|S)N)�st_ino�st_dev�st_uid�st_gid�st_size�st_mtime)	r(r�statrIrJrKrLrMrN)rrH�p�strrrr>{s

�zDbCreator._calc_input_metadatac	Cs�|jD]B}tjdd|gtjd��-}d|vr|�|||j�n|�||j�|��dkr6tj|j	d�
|�d��Wd�n1s@wYqt��|jd|jd<t
�d	|jd
|jdf�dS)Nz/usr/lib/apt/apt-helperzcat-file)�stdout�Contentsrz#/usr/lib/apt/apt-helper cat-file {})�
returncode�cmdr'zprocessed %i packages in %.2fsr&)r(�
subprocess�Popen�PIPE�_parse_single_contents_filerR�_parse_single_commands_file�wait�CalledProcessErrorrT�formatrrr.r/)rrB�f�subrrrr4�s 
����	�zDbCreator._fill_commandscCs|�d||f���}|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)rrB�command�pkgname�
already_in_dbrrr�_in_db�s��zDbCreator._in_dbcCs |�d|f�|�d|f�dS)Nz"DELETE FROM packages WHERE pkgID=?z"DELETE FROM commands WHERE pkgID=?�ra)rrB�pkgidrrr�
_delete_pkgid�szDbCreator._delete_pkgidcCs"|�d|f���}|r|dSdS)Nz'SELECT pkgID from packages WHERE name=?rr`)rrBrd�have_pkgrrr�
_get_pkgid�s��zDbCreator._get_pkgidcCs|�d||||f�}|jS)Nzt
            INSERT INTO packages (name, version, component, priority)
            VALUES (?, ?, ?, ?);
            )ra�	lastrowid)rrBrd�version�	component�priority�currrr�_insert_package�s
�zDbCreator._insert_packagecCs|�d||f�dS)NzF
        INSERT INTO commands (command, pkgID) VALUES (?, ?);
        rg)rrBrc�pkg_idrrr�_insert_command�s�zDbCreator._insert_commandc	Cs�t�|�}|��sdS|jd}|�d�rdS|jd}|jd}|dkr,||jkr,dS|���rM|jdd7<|jd}|j�d	�rJ|jd	}|j�d
d�}t�}	|j�dd�rgt|j�dd��	d
��}	|jd�	d
�D]�}
|
|	vrvqot
d|j��|�||
|�}Wd�n1s�wY|r�t�||d�dkr�t
�d|
�t
d|j��|�||d�Wd�n1s�wYn
t
�d|
|f�qot
�d|
|||f�t
d|j��|�||�}Wd�n1s�wY|�s(t|}
|
t|j�dd��7}
t
d|j��|�|||||
�}Wd�n	1�s#wYt
d|j��|�||
|�Wd�n	1�sAwYqo|��s1dSdS)N�suitez
-backportsrn�arch�allr&��namezvisible-pkgnamerm�zignore-commands�,�commands�sql_already_db�r�+replacing exiting %s in DB (higher version)�sql_delete_already_in_db�(skipping %s from %s (lower/same version)�adding %s from %s/%s (%s)�sql_have_pkgzpriority-bonus�0�sql_insert_pkg�sql_insert_cmd)r)�TagFile�step�section�endswithr+r�get�set�splitr
rf�version_comparer.�debugrirk�component_priorities�intrqrs)rrBrC�tagfrtrnrurdrm�ignore_commandsrcrerrrorrrrZ�sf







���������z%DbCreator._parse_single_commands_filec
Csd}|D�]}|�d�}|�d�s!|�d�s!|�d�s!|�d�s!qz
|�dd�\}}Wn	ty4Yqwtj�|�}|�d�D]�}z|���dd�\}	}Wnty]|��}d	}	Ynwt	|	�d��d
kro|	�d�\}
}	nd}
d}t
d|j��|�|||�}Wd�n1s�wY|r�	t�d||f�q@t�d||||f�t
d|j��|�||�}
Wd�n1s�wY|
s�t|
}t
d|j��|�||||
|�}
Wd�n1s�wYt
d|j��|�|||
�Wd�n	1�swYq@qdS)Nzutf-8zusr/sbinzusr/bin�bin�sbinrwrz�/�unknownr}rr|Frr~rr�r�r�r�r�)�decode�
startswithr��
ValueErrorrr"�basename�strip�rsplit�lenr
rrfr)r�r.r�rirkr�rqrs)rrBr^rCrt�lrc�pkgnamesrdr�rnrmrerrrorrrrY�sd

������������z%DbCreator._parse_single_contents_fileN)rrrrrDr-r>r4rfrirkrqrsrZrYrrrrr%Ps

	9r%�__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-*rwr}z%s: %s)r r<r.rr0rVr8rr)�initr�r3r
r$r%r�basicConfig�INFOr��argv�printr9�colrDr�itemsrO�amountr�rrrr�<module>sF�S
�	

Spamworldpro Mini