U
��.e�? � @ s� d dl mZ d dlZd dlZd dlZd dlZd dlZddlmZm Z m
Z
ddlmZ ddl
mZmZmZmZmZ e�e�Zd�� Ze�d�Zd Zd
d� ZG dd
� d
e�ZdS )� )�BytesION� )� sysconfig�detect_encoding�ZipFile)�finder)�FileOperator�get_export_entry�convert_path�get_executable�in_venva�
s ^#!.*pythonw?[0-9.]*([ ].*)?$z�# -*- coding: utf-8 -*-
import re
import sys
from %(module)s import %(import_name)s
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(%(func)s())
c C sX d| krT| � d�rB| �dd�\}}d|krT|� d�sTd||f } n| � d�sTd| } | S )N� z
/usr/bin/env r �"z%s "%s"z"%s")�
startswith�split)�
executable�envZ_executable� r �?/usr/lib/python3.8/site-packages/pip/_vendor/distlib/scripts.py�_enquote_executable3 s
r c @ s� e Zd ZdZeZdZd'dd�Zdd� Ze j
�d �rBd
d� Zdd
� Z
dd� Zd(dd�Zdd� ZeZdd� Zdd� Zd)dd�Zdd� Zedd� �Zejdd� �Zejd ks�ejd kr�ejd kr�d!d"� Zd*d#d$�Zd+d%d&�ZdS ),�ScriptMakerz_
A class to copy or create scripts from source scripts or callable
specifications.
NTFc C sz || _ || _|| _d| _d| _tjdkp:tjdko:tjdk| _t d�| _
|pRt|�| _tjdkprtjdkortjdk| _
d S )NF�posix�java)� �X.Y�nt)�
source_dir�
target_dir�
add_launchers�force�clobber�os�name�_name�set_mode�set�variantsr �_fileop�_is_nt)�selfr r r �dry_runZfileopr r r �__init__L s �
�zScriptMaker.__init__c C s@ |� dd�r<| jr