CasperSecurity

Current Path : /lib/python3/dist-packages/CommandNotFound/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/CommandNotFound/__pycache__/CommandNotFound.cpython-310.pyc

o

���a�<�@s�ddlmZmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
e
jdkr:dZndZeejddd	�e�Zd
d�Zdd
�ZdZGdd�de�ZdS)�)�print_function�absolute_importN)�SqliteDatabase�3�gettext�ugettextzcommand-not-foundT)�fallbackcsvd��fdd�tt��d�D�}dd�|D�}dd�|D�}�fdd�|D�}�fdd�|D�}t||||�S)	zw
    return a set with spelling1 distance alternative spellings

    based on http://norvig.com/spell-correct.html
    z&abcdefghijklmnopqrstuvwxyz-_0123456789cs$g|]}�d|��|d�f�qS�N�)�.0�i)�wordr
�A/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py�
<listcomp>#�$z!similar_words.<locals>.<listcomp>�cSs$g|]\}}|r||dd��qS�rNr
�r�a�br
r
rr$rcSs<g|]\}}t|�dkr||d|d|dd��qS)rr�N��lenrr
r
rr%s<cs2g|]\}}�D]}|r|||dd��qqSrr
�rrr�c��alphabetr
rr&s2cs&g|]\}}�D]}|||�qqSr
r
rrr
rr's&)�ranger�set)r
�s�deletes�
transposes�replaces�insertsr
)rr
r�
similar_wordssr$cCsDzt��}t�d�d|vpt�d�d|vWSty!YdSw)N�sudor�adminF)�posix�	getgroups�grp�getgrnam�KeyError)�groupsr
r
r�
user_can_sudo+s��r-z&/var/lib/command-not-found/commands.dbc@s�eZdZdZdZdZdZejZ	d*dd�Z
d+d	d
�Zdd�Zd
d�Z
dd�Zdd�Zdd�Zd,dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd-d'd(�Zd)S).�CommandNotFoundz
programs.d�)z	/snap/binz/binz/usr/binz/usr/local/binz/sbinz	/usr/sbinz/usr/local/sbinz
/usr/gamesz
/usr/bin/snap�/usr/share/command-not-foundcCsN|��|_tj�t�rt�ttj�rtt�|_	nt
d��t�|_t�
�|_dS)NzCannot find database)�_getSourcesList�sources_list�os�path�exists�dbpath�access�R_OKr�db�FileNotFoundErrorr-r'�geteuid�euid)�self�data_dirr
r
r�__init__Ks
zCommandNotFound.__init__�c	Csdg}|t|�kr|jks|S|St|�D]}|�|�}|D]\}}}|�||||f�q q|S)z try to correct the spelling )r�max_lenr$�get_packages�append)	r=r
�min_len�possible_alternatives�w�packages�package�ver�compr
r
r�spelling_suggestionsUs�
�z$CommandNotFound.spelling_suggestionscCs|j�|�Sr	)r9�lookup�r=�commandr
r
rrB`szCommandNotFound.get_packagesc	
Cslg}g}tj�|j�st�d|j�ggfSz%ttj��}tj	|jddd|g|dd�}Wd�n1s6wYWntj
yZ}zt�d|�ggfWYd}~Sd}~wwt�d|�zt�|�}Wntj
y�}zt�d	|�ggfWYd}~Sd}~ww|D]'}|d
|kr�|�|d|d
|�d�f�q�|�|d
|d|�d�f�q�||fS)
Nz
%s not existszadvise-snapz
--format=jsonz	--commandT)�stderr�universal_newlinesz.calling snap advice-snap returned an error: %szgot %s from snap advise-snapzcannot decoding json: %s�Command�Snap�Version)r3r4r5�snap_cmd�logging�debug�open�devnull�
subprocess�check_output�CalledProcessError�json�loads�JSONDecodeErrorrC�get)	r=rN�exact_result�mispell_resultrX�output�e�snaps�snapr
r
r�	get_snapscsD��������  zCommandNotFound.get_snapscCsjz)ttj�t�dd�df���}dd�|D�Wd�WS1s"wYWdSty4gYSw)N�HOMEz/rootz.command-not-found.blacklistcSs g|]}|��dkr|���qS)�)�strip)r�liner
r
rr�s z0CommandNotFound.getBlacklist.<locals>.<listcomp>)rWr3�sep�join�getenv�IOError)r=�	blacklistr
r
r�getBlacklist�s(��zCommandNotFound.getBlacklistc	Cszzddl}ddlm}|��Wn
ttfygYSwtg�}|dd�D]}|js:|js:|j	D]}|�
|�q2q'|S)Nr)�SourcesListF)�withMatcher)�apt_pkg�aptsources.sourceslistrq�init�SystemError�ImportErrorr�disabled�invalid�comps�add)r=rsrqr2�source�	componentr
r
rr1�s�
�zCommandNotFound._getSourcesListcCs�dtjvrdS|r[td�}tjdkrt|�}dd�}n||�}tjjr/t|t	�r/|�
tjj�}|��td�kr]|jdkr?d}nd	}d
||f}t
d|tjd�tj|��d
d�dSdSdS)N� COMMAND_NOT_FOUND_INSTALL_PROMPTz Do you want to install it? (N/y)rcSs|Sr	r
)�xr
r
r�<lambda>�sz0CommandNotFound.install_prompt.<locals>.<lambda>�yrrh�sudo z%sapt install %sz%s��fileF)�shell)r3�environ�_�sys�version�input�stdin�encoding�
isinstance�str�decode�lowerr<�print�stdoutrY�call�split)r=�package_name�prompt�answer�	raw_input�command_prefix�install_commandr
r
r�install_prompt�s&



�
zCommandNotFound.install_prompt�c
CsVt|�t|�|kr ttd�|t|�f|jd�|j��dSt|�t|�dkrtttd�||jd�|D]\}}}|rCd|}nd}ttd�|||f|jd�q7|D]\}}}	}|rcd|}nd}ttd	�|||f|jd�qVt|�dkr�ttd
�|jd�n t|�dkr�|jr�ttd�d|jd�nttd�d
|jd�|j��dS)z3 print spelling suggestions for packages and snaps z6Command '%s' not found, but there are %s similar ones.r�Nr�%Command '%s' not found, did you mean:z (%s)rhz  command '%s' from snap %s%s�  command '%s' from deb %s%s�3See 'snap info <snapname>' for additional versions.zTry: %s <deb name>zsudo apt installzapt install)rr�r��	output_fd�flushr-)
r=r
�mispell_packages�
mispell_snaps�max_altrNrerIrHrJr
r
r�print_spelling_suggestions�s.


z*CommandNotFound.print_spelling_suggestionscCsttd�d|i|jd�dS)Nz;Command '%(command)s' not found, but can be installed with:rNr�)r�r�r�rMr
r
r�_print_exact_header�s
�
�z#CommandNotFound._print_exact_headercCs�|�|�|d}|jdkrtd|d|jd�n |jr)td|d|jd�ntd|d|jd�ttd��|j��dS)Nrzsnap install %sr�zsudo snap install %s�Please ask your administrator.)r�r<r�r�r-r�r�)r=rNrGrdrer
r
r�advice_single_snap_package�s

z*CommandNotFound.advice_single_snap_packagecCs�|�|�|jdkr!td|dd|jd�|�|dd�nE|jr;td|dd|jd�|�|dd�n+td|dd|jd�ttd��|dd|jvrfttd�|dd|jd�|j��dS)Nrzapt install %sr�zsudo apt install %sr�rz1You will have to enable the component called '%s')	r�r<r�r�r�r-r�r2r�)r=rNrGrdr
r
r�advice_single_deb_package�s

z)CommandNotFound.advice_single_deb_packagecCs|jdkr
|jr
dSdS)Nrr�rh)r<r-)r=r
r
rr%�szCommandNotFound.sudocCs|�|�tdd�||D��}t|�D]W\}}d}|dr5|dkr/t|�dkr/d|d}nd|d}|d|jvrNtd	|��||d|f|jd
�qtd	|��||d|fdtd�|dd
|jd
�q|j	dkr}|j
s}ttd�|jd
�|j��dS)NcS�g|]}t|d��qS�rr�rrr
r
rr��z<CommandNotFound.advice_multi_deb_package.<locals>.<listcomp>rhrr�  # version %s, or�  # version %srz%sapt install %-*s%sr�z (z-You will have to enable component called '%s'�)z.Ask your administrator to install one of them.)r��max�	enumeraterr2r�r%r�r�r<r-r�)r=rNrGrd�padrrHrIr
r
r�advice_multi_deb_package�s
$<z(CommandNotFound.advice_multi_deb_packagecCs�|�|�tdd�||D��}t|�D]2\}}d}|dr5|dkr/t|�dkr/d|d}nd|d}td|��||d|f|jd	�qttd
�|jd	�|j��dS)NcSr�r�rr�r
r
rrr�z>CommandNotFound.advice_multi_snap_packages.<locals>.<listcomp>rhrrr�r��%ssnap install %-*s%sr�r�)	r�r�r�rr�r%r�r�r�)r=rNrGrdr�rrerIr
r
r�advice_multi_snap_packagess
$z*CommandNotFound.advice_multi_snap_packagesc	Cs|�|�tdd�||D��}t|�D],\}}d}|dr/|dkr)d|d}nd|d}td|��||d|f|jd	�q|D]}d}|d
rQd|d
}td|��||d|f|jd	�qCt|�d
kryttd�|dd|jd	�n	ttd
�|jd	�|j��dS)NcSr�r�rr�r
r
rrr�z?CommandNotFound.advice_multi_mixed_packages.<locals>.<listcomp>rhrrr�r�r�r�rz%sapt  install %-*s%sz+See 'snap info %s' for additional versions.r�)	r�r�r�r�r%r�rr�r�)	r=rNrGrdr�rrerIrHr
r
r�advice_multi_mixed_packagess$
$$ z+CommandNotFound.advice_multi_mixed_packagesFc
sPdd��t��|jkr
dS��d�r#tj���r tj���g}ng}n��fdd�|jD�}|r�|s�t|�dkrNtt	d��tj�
|d	��d
�|jd�n tt	d�d
�i|jd�|D]}tdtj�
|��|jd�q]tt
|�t
t�dd��d���}t|�d	kr�tt	d�d�
|�|jd�dd�
|�vr�tt	d�|jd�dStj�d�s�tj�d�s�dS�|��vr�dS�dkr�tt	d��|jd�tt	d�d|jd�tt	d�d|jd�dS|���}|���\}}t�d||f�t|�d	k�r t|�d	k�r |���}	t|	�d	k�st|�d	k�r|��|	|�nmt|�d	k�r6t|�dk�r6|��||�nWt|�d	k�rLt|�d	k�rL|��||�nAt|�dk�rbt|�d	k�rb|��||�n+t|�dk�rxt|�d	k�rx|��||�nt|�d	k�r�t|�d	k�r�|��||�t|�d	k�p�t|�d	k�p�t|�d	k�p�t|	�d	kS)z7 give advice where to find the given command to stderr cSs.tj�tj�||��otj�tj�||��S)z? helper that returns if a command is found in the given prefix )r3r4r5rl�isdir)�prefixrNr
r
r�
_in_prefix's�z*CommandNotFound.advise.<locals>._in_prefixF�/csg|]	}�|��r|�qSr
r
)rr��r�rNr
rr5sz*CommandNotFound.advise.<locals>.<listcomp>rz1Command '%(command)s' is available in '%(place)s'r)rN�placer�z:Command '%(command)s' is available in the following placesrNz * %s�PATHrh�:z_The command could not be located because '%s' is not included in the PATH environment variable.�sbinzfThis is most likely caused by the lack of administrative privileges associated with your user account.z/usr/bin/aptz/usr/bin/aptitude�pythonr�r�)�python3r�rh)r�zpython-is-python3rhTzgot debs: %s snaps: %s)rrA�
startswithr3r4r5�dirname�prefixesr�r�rlr��listrrmr�rprBrfrUrVrKr�r�r�r�r�r�)
r=rN�ignore_installedr�r��missingrGrdr�r�r
r�r�advise%sl
,"
�

�
�
�zCommandNotFound.adviseN)r0)r@)r�)F)�__name__�
__module__�__qualname__�programs_dirrAr�rTr�rOr�r?rKrBrfrpr1r�r�r�r�r�r%r�r�r�r�r
r
r
rr.8s,




r.)�
__future__rrrr)r\rUr3�os.pathr'r�rY�CommandNotFound.db.dbrr��_gettext_method�getattr�translationr�r$r-r6�objectr.r
r
r
r�<module>s&


Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY