hHddlmZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z m Z m Z ddlmZddlmZmZmZmZmZmZejeZdZejd Zd Zejd ksejd krOej d krDe!d ddZ"dee"#dDZ$dZ%e%Z&Gdde'Z(dS))BytesION)ZipInfo) sysconfigdetect_encodingZipFile)finder) FileOperatorget_export_entry convert_pathget_executable get_platformin_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()) ntjava.c\i|])}|jd|j|j*S).exe)nameendswithbytes).0rs {/builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib/python3.11/site-packages/pip/_vendor/distlib/scripts.py r@sB 6??6 " " cd|vrj|dr;|dd\}}d|vr|ds|d|d}n|dsd|z}|S)N z /usr/bin/env r"z "z"%s") startswithsplit) executableenv _executables renquote_executabler&Gs j   1 1 1)//Q77 Ck!!+*@*@*E*E!*-##{{{; ((-- 1#j0 rc2eZdZdZeZdZddZdZe j drdZ d Z d Zdd Zd ZeZdZdZdZdZddZdZedZejdZejdksejdkrejdkrdZddZ ddZ!dS) ScriptMakerz_ A class to copy or create scripts from source scripts or callable specifications. NTFc||_||_||_d|_d|_t jdkpt jdkot jdk|_td|_ |pt||_ t jdkpt jdkot jdk|_ tj|_dS)NFposixr)rX.Yr) source_dir target_dir add_launchersforceclobberosr_nameset_modesetvariantsr _fileop_is_ntsys version_info)selfr,r-r.dry_runfileops r__init__zScriptMaker.__init__ds$$*  G+[F1B1ZrxSZGZ K(( 6g!6!6 goQ"'V*;*PD@P ,rc|ddr_|jrXtj|\}}|dd}tj||}|S)NguiFpythonpythonw)getr7r1pathr"replacejoin)r:r#optionsdnfns r_get_alternate_executablez%ScriptMaker._get_alternate_executablersf ;;ue $ $ . .W]]:..FBHi00Bb"--Jrrc t|5}|ddkcdddS#1swxYwYdS#ttf$rtd|YdSwxYw)zl Determine if the specified executable is a script (contains a #! line) z#!NzFailed to open %sF)openreadOSErrorIOErrorloggerwarning)r:r#fps r _is_shellzScriptMaker._is_shell{s  *%%.771::-..................W%   2J???uu s,A7 A;A;A,A43A4c||r*ddl}|jjddkr|Sn)|dr|Sd|zS)Nrzos.nameLinuxz jython.exez/usr/bin/env %s)rSrlangSystem getPropertylowerr)r:r#rs r_fix_jython_executablez"ScriptMaker._fix_jython_executables|~~j)) " 9#// ::gEE%%F!!##,,\:: "!!$z1 1rc&tjdkrd}nZttddrd}nAt |t |zdz}tjdkrd}nd}d |vo||k}|r d |z|zd z}nd }|d |z|zdzz }|dz }|S)a Build a shebang line. In the simple case (on Windows, or a shebang line which is not too long or contains spaces) use a simple formulation for the shebang. Otherwise, use /bin/sh as the executable, with a contrived shebang which allows the script to run either under Python or sh, using suitable quoting. Thanks to Harald Nordgren for his input. See also: http://www.in-ulm.de/~mascheck/various/shebang/#length https://hg.mozilla.org/mozilla-central/file/tip/mach r*Tcross_compilingFdarwini s#! s #!/bin/sh s '''exec' s "$0" "$@" s' ''' )r1rgetattrr8lenplatform)r:r# post_interpsimple_shebangshebang_lengthmax_shebang_lengthresults r_build_shebangzScriptMaker._build_shebangs 7g  !NN S+U 3 3 c #NN!__s;/?/??!CN|x''%(""%("#:5aNN`<`N  !Z'+5=FF#F lZ/+=O OF j F rrcd}|jr |j}d}n,tjst}n t rHt jtjddtj dz}nt j dkrHt jtj ddtj dz}n[t jtj ddtj d tj d}|r| ||}tj d r||}|rt!|}|d }tj d kr d |vr d|vr|dz }|||} |d n #t($rt+d|zwxYw|d kr; ||n$#t($rt+d|d|dwxYw|S)NTFscriptszpython%sEXErBINDIRr@VERSIONrutf-8cliz -X:Framesz -X:FullFramess -X:Framesz,The shebang (%r) is not decodable from utf-8z The shebang (z-) is not decodable from the script encoding ())r#ris_python_buildr rr1rCrEget_pathget_config_varrrIr8rdr!rZr&encoderjdecodeUnicodeDecodeError ValueError)r:encodingrerFenquoter#shebangs r _get_shebangzScriptMaker._get_shebangs ? kJGG*,, k'))JJ YY ki&8&C&CZR[RjkpRqRqEqrrJJw$ W\\)*B8*L*L*4 8PQV8W8W*XZZ  W\\,X666$-$>  W NN7 # # # #! W W WKgUVV V W w   Xx((((% X X X jDKGGXXX"WXXX Xs'G==H$H::!Ic|jt|j|jdd|jzS)Nrr)module import_namefunc)script_templatedictprefixsuffixr")r:entrys r_get_script_textzScriptMaker._get_script_textsH#d>'**4<NN#>HHH ..w EEE=@L44gY???   W % % % %C! &! &sJ'B C<<DDF,,B&I;I('I;( I52I;4I55I;:I;-c<t}d|jvr||d|jvr$|||jdd|jvr9|||j|jdd|jd|S)NrXrr+rr)r4r5addr9variant_separator)r:rris rget_script_filenamesz ScriptMaker.get_script_filenames<s    JJt    $-   JJt'8';';< = = = DM ! ! JJddD,B,BDDUVWDXDXDXZ^ZklmZnZno p p p rcd}|rE|dg}|r-dd|z}|d}|d||}||d}||j}|r|ddrd } nd } |||||| dS) Nrinterpreter_argsz %srrprFr?Fpywr)rBrErvr}rrrr) r:rrrFreargsr|script scriptnamesrs r _make_scriptzScriptMaker._make_scriptFs  3;;1266D 3sxx~~-"kk'22 ##G['#JJ&&u--44W==// ;;  w{{5%00 CCC ;CHHHHHrcNd}tj|jt |}tj|jtj|}|js8|j ||st d|dS t|d}| }|std|dSt|dd}|rd}|dpd }n#t&$r |jsd}YnwxYw|sj|r||j|||jr|j|g||dStd ||j|jjst7|j \} } |d || |} d |vrd } nd} tj|} || g| ||| |r|dSdS)NFznot copying %s (up-to-date)rbz%s is an empty file (skipping)s raTrrzcopying and adjusting %s -> %srspythonwrr) r1rCrEr,r r-rr/r6newerrPrrLreadlinerQ FIRST_LINE_REmatchrDgrouprOr;close copy_filer3rrinforseekr}rrM)r:rradjustrf first_linerrerzlinesr|rrs r _copy_scriptzScriptMaker._copy_scriptVsdo|F/C/CDD',,t0@0@0H0HIIz $,"4"4VW"E"E  LL6 ? ? ? F  4VT""A J ?HHH!'' (:(:7E(J(JKKE 4#kk!nn3    < AAA    L " "67 3 3 3} < 00';;;   W % % % % % KK8&$/ R R R<' K"1!*"="=%q ++HkBB++CCCG$$W--""A39cJJJ    s7EEEc|jjSrr6r;)r:s rr;zScriptMaker.dry_runs |##rc||j_dSrr)r:values rr;zScriptMaker.dry_runs$ rrctjddkrd}nd}tdkrdnd}|||d}|tvrd |d t}t |t|S) NP6432z win-arm64z-armrrzUnable to find resource z in package )structcalcsizerWRAPPERSDISTLIB_PACKAGEry)r:kindbitsplatform_suffixrmsgs rrzScriptMaker._get_launcherss##q(((4+(E(Eff2O#'4?D8###oo/ oo%D> !rcg}t|}||||n|||||S)a Make a script. :param specification: The specification, which is either a valid export entry specification (to make a script from a callable) or a filename (to make a script by copying from a source location). :param options: A dictionary of options controlling script generation. :return: A list of all absolute pathnames written to. Nr)r rr)r: specificationrFrrs rmakezScriptMaker.makesU  // =   mY 7 7 7 7   eY  @ @ @rcfg}|D]+}||||,|S)z Take a list of specifications and make scripts from them, :param specifications: A list of specifications. :return: A list of all absolute pathnames written to, )extendr)r:specificationsrFrrs r make_multiplezScriptMaker.make_multiplesE  + @ @M   TYY}g>> ? ? ? ?r)TFN)rNr)"__name__ __module__ __qualname____doc__SCRIPT_TEMPLATErr#r=rIr8rdr!rSrZrjr}r_DEFAULT_MANIFESTrrrrrrrpropertyr;setterr1rr2rrrrrr(r([s&OJ - - - - |v&&2    2 2 2"""H@@@@D\\\!H$$$5&5&5&nIIII 000d$$X$ ^%%^% w$27f,,T1A1A " " "&      rr())iorloggingr1rerr8rzipfilercompatrrr resourcesr utilr r r r rr getLoggerrrPstriprcompilerrrr2rsplitriteratorrr&_enquote_executableobjectr(rrrrs 7777777777gggggggggggggggg  8 $ $ uww!& =>> "7d??rw&((RX-=-=ooc1--a0O((11"55H   ")ddddd&dddddr