PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  ZKdc@sddlZddlZddlZddlZddlZddlZddlmZyddlj j Z Wne k rddl Z nXdZ dZdZdZd Zd Zd Zd Zed krejeejdndS(iN(tcopy2tchecktinstallt uninstallcCs|rtj}n tj}tj}|j|d}tj|d}|j|tj}|j||j||S(s Logging configuration function :type verbose: bool :param verbose: Enable additional debug output if True, display only errors othervise :return: configured logger object s%(levelname)-8s: %(message)ss%H:%M:%S %d.%m.%y( tloggingtDEBUGtERRORt StreamHandlertsetLevelt Formattert setFormattert getLoggert addHandler(tverbosetlevelthandlert log_formatt formattertlogger((s6/opt/alt/alt-php-config/alt-php-panel-configuration.pytconfigure_loggings         cCsEg}x.tjdD]}|j|d|fqW|j|S(s Returns list of installed alt-php versions and their base directories :rtype: list :return: List of version (e.g. 44, 55) and base directory tuples s/opt/alt/php[0-9][0-9]i(tglobtappendtsort(t php_versionstphp_dir((s6/opt/alt/alt-php-config/alt-php-panel-configuration.pytfind_alt_php_versions)s  cCstjddgdtjdtjdt}|j\}}x[|jdD]J}d||f|jjdd krOtj d ||ftSqOWtj d ||ft S( sx :param php_ver: alt-php version (e.g. 44, 55, 70) :return: If handler exist returns True, otherwise False s/usr/local/psa/bin/php_handlers--listtstdouttstderrtuniversal_newliness s alt-php%s-%st isHandler for alt-php%s-%s exist.s#Handler for alt-php%s-%s not exist.( t subprocesstPopentPIPEtSTDOUTtTruet communicatetsplittstripRtinfotFalse(tcgi_typetphp_vertproctoutt_tline((s6/opt/alt/alt-php-config/alt-php-panel-configuration.pytplesk_check_php_handler7s )cCs]t||r*tjd||ftStjd||ftjjdj||d}|ddd||fdtj j |d d tj j |d d |d d||fg }|dkrS|j dd|dtj j |ddtj j |dgtj j d|sut tj j |dtj j |dqun"|j dtj j |dgtj|dtjdtjdt}|j\}}|jdkrtddj ||fntj|dgdtjdtjdt}|j\}}|jdkrHtd |d!|ntjd"|tS(#NsHandler for alt-php%s-%s exist.s'Plesk: Installing alt-php%s-%s handler.s)Plesk: Installing alt-php{0}-{1} handler.s/usr/local/psa/bin/php_handlers--adds -displaynames alt-php%s-%ss-clipaths usr/bin/phps-phpinis etc/php.inis-types-idtfpms-services alt-php%s-fpms-pathsusr/sbin/php-fpms-poolds etc/php-fpm.ds/opt/alt/php%s/etc/php-fpm.confsetc/php-fpm.conf.plesksetc/php-fpm.confsusr/bin/php-cgiRRRiucannot execute "%s": %sRs--rereaducannot execute "s --reread": %ss-Handler for alt-php%s was successfully added.(R.RR&R'tsysRtwritetformattostpathtjointextendtexistsRRRR R!R"R#t returncodet Exception(R(R)tphp_pathtcommandt add_commandR*R+R,((s6/opt/alt/alt-php-config/alt-php-panel-configuration.pytplesk_add_php_handlerIsB  1"cCst||rtjd||ftjjdj||dddd||fg}tj|dtj dtj d t }|j \}}|j d krtd d j||fntjd ||ft Stjd||ftSdS(Ns%Plesk: Removing alt-php%s-%s handler.s'Plesk: Removing alt-php{0}-{1} handler.s/usr/local/psa/bin/php_handlers--removes-ids alt-php%s-%sRRRiucannot execute "%s": %sRs2Handler for alt-php%s-%s was successfully removed.s#Handler for alt-php%s-%s not exist.(R.RR&R0RR1R2RRR R!R"R#R8R9R5R'(R(R)R;R*R+R,((s6/opt/alt/alt-php-config/alt-php-panel-configuration.pytplesk_remove_php_handlerqs "cCsfy>tj}|dkr=tjjds<tdn|dkrtd||td||tjjd|stjjd|r:td ||q:q=|d krtd|td|tjjd|stjjd|r:td |q:q=td|o9td|o9td |SnWn!tk ra}t j |t SXd S( sL :rtype: bool :return: If success returns True, otherwise False tPlesks/usr/local/psa/bin/php_handlers)/usr/local/psa/bin/php_handler not exist.Rtfastcgitcgis/etc/init.d/alt-php%s-fpms-/usr/lib/systemd/system/alt-php%s-fpm.serviceR/RN( tcpapit getCPNameR3R4R7R9R=R>R.RR&R'(tmodeR)R:tcp_namete((s6/opt/alt/alt-php-config/alt-php-panel-configuration.pytconfigure_alt_phps&   ,   ,2 c Csy(tj|ddddg\}}Wn0tjk rZ}tjjdj|dSXt}d}g}x|D]\}}|dkr|tkrd}q|}n|dkrtj j d |stjjd j|dS|j |d |fn|dkrtt }qtqtWt |} |skt}| jddjg|D]} d| ^qMnx$|D]\} } t|| | qrWdS(Nsm:p:vsmode=sphp=R s(cannot parse command line arguments: {0}iRs-ms--modes-ps--phps/opt/alt/php%ssunknown PHP version {0}s-vs --verboseu!installed alt-php versions are %ss s alt-php%s: %s(s-ms--mode(s-ps--php(s-vs --verbose(tgetoptt GetoptErrorR0RR1R2R'tMODESR3R4tisdirRR"RRR&R5RG( tsys_argstoptstargsRFR RDRtopttargtlogtitverR4((s6/opt/alt/alt-php-config/alt-php-panel-configuration.pytmains6(          +t__main__i(schecksinstalls uninstall(RHRRR3RR0tshutilRtdb.clcommon.cpapitclcommonRBt ImportErrortdetectcpRJRRR.R=R>RGRTt__name__texittargv(((s6/opt/alt/alt-php-config/alt-php-panel-configuration.pyts(           (   !