Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 …á�jî@ã@srddlZddlZddlZddlZddlZddlZddljZddl Z ddl Tddl m Z ej jƒZGdd„dƒZdS)éN)Ú*)ÚTunedExceptionc@s eZdZdbdd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdcdd„Z dddd„Z dd„Z dd„Z dd„Z dedd„Zdfdd„Zdgd d!„Zdhd#d$„Zdid%d&„Zdjd'd(„Zdkd)d*„Zdld+d,„Zd-d.„Zd/d0„Zdmd1d2„Zd3d4„Zd5d6„Zdnd7d8„Zddigdfd9d:„Zdod;d<„Zd=d>„Zd?d@„ZdAdB„Z dpdDdE„Z!dFdG„Z"dHdI„Z#dJdK„Z$dLdM„Z%dqdNdO„Z&dPdQ„Z'dRdS„Z(dTdU„Z)dVdW„Z*dXdY„Z+dZd[„Z,d\d]„Z-d^d_„Z.d`da„Z/dS)rÚcommandsTcCs ||_dS)N)Ú_logging)ÚselfZlogging©rú/usr/lib/python3.6/commands.pyÚ__init__szcommands.__init__cCs|jrtj|ƒdS)N)rÚlogÚerror)rÚmsgrrrÚ_errorszcommands._errorcCs|jrtj|ƒdS)N)rr Údebug)rr rrrÚ_debugszcommands._debugc Cs.t|ƒjƒjƒ}dddddddddœj||ƒS)NÚ1Ú0)ÚYZYESÚTZTRUEÚNZNOÚFZFALSE)ÚstrÚupperÚstripÚget)rÚvalueÚvrrrÚget_boolszcommands.get_boolcCstjddt|ƒƒjƒS)Nz\s+ú )ÚreÚsubrr)rÚsrrrÚ remove_wsszcommands.remove_wscCstjdd|ƒS)Nz^"(.*)"$z\1)rr)rrrrrÚunquote"szcommands.unquoteú\cCs|j|d||fƒS)Nz%s%s)Úreplace)rr Z what_escapeZ escape_byrrrÚescape&szcommands.escapecCs |j|dƒS)NÚ)r$)rr Z escape_charrrrÚunescape*szcommands.unescapecCs|d|t|ƒ|S)Nr)Úlen)rÚs1ÚposÚs2rrrÚ align_str.szcommands.align_strcCs2g}|dk r.x t|jƒƒD]}|t|ƒ7}qW|S)N)ÚsortedÚitemsÚlist)rÚdÚlÚirrrÚ dict2list4s zcommands.dict2listcCs(|dkr dStjddjt|jƒƒƒƒS)Nz(%s)z)|()rÚcompileÚjoinr/Úkeys)rr0rrrÚre_lookup_compile<szcommands.re_lookup_compileNrcsVˆdkr|dkr.|Sntˆƒdks*|dkr.|S|dkr@|jˆƒ}|j‡fdd„||ƒS)Nrcstˆjƒƒ|jdS)Né)r/ÚvaluesÚ lastindex)Úmo)r0rrÚMsz.commands.multiple_re_replace..)r(r7r)rr0r ÚrÚflagsr)r0rÚmultiple_re_replaceDs zcommands.multiple_re_replacecCsRt|ƒdks|dkrdS|dkr*|j|ƒ}|j|ƒ}|rNt|jƒƒ|jdSdS)Nrr8)r(r7Úsearchr/r9r:)rr0r r=r;rrrÚ re_lookupSs  zcommands.re_lookupFc CsÎ|jd||fƒ|r2tjj|ƒ}tjj|ƒr2d}y6|rBtj|ƒt|dƒ}|jt|ƒƒ|j ƒd}Wn`t t fk rÈ}z@d}t |t ƒr’| s¦t |tƒr¸|j|kr¸|jd||fƒWYdd}~XnX|S)aWrite data to a file. Parameters: f -- filename where to write data -- data to write makedir -- if True and the path doesn't exist, it will be created no_error -- if True errors are silenced, it can be also list of ignored errnos Return: bool -- True on success zWriting to file: '%s' < '%s'FÚwTz Writing to file '%s' error: '%s'N)rÚosÚpathÚdirnameÚisdirÚmakedirsÚopenÚwriterÚcloseÚOSErrorÚIOErrorÚ isinstanceÚboolr/Úerrnor ) rÚfÚdataZmakedirÚno_errorr0ÚfdZrcÚerrrÚ write_to_file]s$     $zcommands.write_to_filer&cCsv|}yt|dƒ}|jƒ}|jƒWn<ttfk r^}z|sN|jd||fƒWYdd}~XnX|jd||fƒ|S)Nr=z"Error when reading file '%s': '%s'z Read data from file: '%s' > '%s')rHÚreadrJrKrLr r)rrPZerr_retrRZ old_valuerTrrrÚ read_file|s  $zcommands.read_filecCsj|jd|ƒtjj|ƒrfytj||ƒWn:tk rd}z|sVtjd|t |ƒfƒdSd}~XnXdS)NzRemoving tree: '%s'zcannot remove tree '%s': '%s'FT) rrCrDÚexistsÚshutilÚrmtreerKr r r)rrPrRr rrrrZˆs zcommands.rmtreecCsh|jd|ƒtjj|ƒrdytj|ƒWn:tk rb}z|sTtjd|t|ƒfƒdSd}~XnXdS)NzRemoving file: '%s'zcannot remove file '%s': '%s'FT) rrCrDrXÚunlinkrKr r r)rrPrRr rrrr[“s zcommands.unlinkcCsd|jd||fƒytj||ƒWn<tk r^}z |sPtjd||t|ƒfƒdSd}~XnXdS)NzRenaming file '%s' to '%s'z%cannot rename file '%s' to '%s': '%s'FT)rrCÚrenamerKr r r)rÚsrcÚdstrRr rrrr\žszcommands.renamecCs`y"tjd||fƒtj||ƒdStk rZ}z|sLtjd|||fƒdSd}~XnXdS)Nzcopying file '%s' to '%s'Tz!cannot copy file '%s' to '%s': %sF)r rrYÚcopyrLr )rr]r^rRrTrrrr_¨s z commands.copycCs6|j|ƒ}t|ƒdkrdS|j|tj|||tjd�ƒS)NrF)r>)rWr(rUrrÚ MULTILINE)rrPÚpatternÚreplrQrrrÚreplace_in_file²s  zcommands.replace_in_filecCs4|j|ƒ}t|ƒdkrdS|j||j||tjd�ƒS)NrF)r>)rWr(rUr?rr`)rrPr0rQrrrÚmultiple_replace_in_fileºs  z!commands.multiple_replace_in_filecCs¶|j|ƒ}xž|D]–}t|ƒ}t||ƒ}tjd|d|tjd�dkr||r¦t|ƒdkrj|d dkrj|d7}|d||f7}qtjd|d d |j|ƒd |tjd�}qW|j||ƒS)Nz\bz\s*=.*$)r>rr8Ú z%s="%s" z\b(z\s*=).*$z\1ú"éÿÿÿÿz\1") rWrrr@r`r(rr%rU)rrPr0ÚaddrQÚoptÚorrrrÚadd_modify_option_in_fileÄs   .z"commands.add_modify_option_in_filecCs"|j|ƒ}tjt|ƒjdƒƒjƒS)Nzutf-8)rWÚhashlibZmd5rÚencodeÚ hexdigest)rrPrQrrrÚmd5sumÔs zcommands.md5sumcCs"|j|ƒ}tjt|ƒjdƒƒjƒS)Nzutf-8)rWrlZsha256rrmrn)rrPrQrrrÚ sha256sumÙs zcommands.sha256sumcCs|jtj|ƒjƒS)N)rWÚconstsZMACHINE_ID_FILEr)rrRrrrÚget_machine_idÞszcommands.get_machine_idcCsVd}tjjƒ}d|d<|j|ƒ|jdt|ƒƒd} d} y†t|tt|||ddd�} | jƒ\} } | j }|r¾||kr¾d|kr¾| dd …} t | ƒdkrž| dd …} d d j |ƒ| f} |s¾|j | ƒWnxt tfk �r8}zV|jdk rê|j nd }t|ƒ|k�r(d|k�r(d d j |ƒ|f} |�s(|j | ƒWYdd}~XnX|�rJ|| | fS|| fSdS)NrÚCÚLC_ALLz Executing %s.r&T)ÚstdoutÚstderrÚenvÚshellÚcwdZ close_fdsZuniversal_newlinesr8zExecuting '%s' error: %srrgrgrg)rCÚenvironr_ÚupdaterrÚPopenÚPIPEZ communicateÚ returncoder(r5r rKrLrOÚabs)rÚargsrxryrwZ no_errorsZ return_errZretcodeZ _environmentÚoutZerr_msgÚprocÚerrZerr_outrTrrrÚexecuteäs>       zcommands.executecCs.tjd|ƒ}|r|jdƒS|r*|jƒdS|S)Nz.*\[([^\]]+)\].*r8r)rÚmatchÚgroupÚsplit)rZoptionsZdosplitÚmrrrÚget_active_option s    zcommands.get_active_optioncCs*t|ƒ}|dkp(|jd|dd�jƒdkS)Nrz$/sys/devices/system/cpu/cpu%s/onlineT)rRr)rrWr)rÚcpuZscpurrrÚ is_cpu_onlineszcommands.is_cpu_onlinec Cs\|dkr dSt|ƒjddƒ}yt|dƒ}Wn&tk rPtjdt|ƒƒgSX|j|ƒS)Nú,r&ézinvalid hexadecimal mask '%s')rr$ÚintÚ ValueErrorr r Úbitmask2cpulist)rÚmaskrˆrrrÚ hex2cpulistszcommands.hex2cpulistcCs<d}g}x.|dkr6|d@r$|j|ƒ|dL}|d7}q W|S)Nrr8)Úappend)rr‘rŠÚcpusrrrr�&s   zcommands.bitmask2cpulistú'"cCs^g}|dkr|S|}t|ƒtk rD|dk r6t|ƒj|ƒ}t|ƒjdƒ}g}g}d}d}�x|D�]} t| ƒ} |r˜t| ƒdkrŽd}|j|ƒd}n|| 7}q\| dd…jƒdkr¶d}| }q\| oÐ| ddksÔ| dd k�rP| d d…jd ƒ} yPt| ƒd k�r|ttt | dƒt | d ƒd ƒƒ7}n|jt | d d…ƒƒWnt k �rLgSXq\t| ƒdkr\|j| ƒq\Wt|ƒdk�r‚|j|ƒx¢|D]š} | jd ƒ} | dd…jƒdk�r¼||j | ƒ7}ndyLt| ƒd k�rô|ttt | dƒt | d ƒd ƒƒ7}n|jt | dƒƒWnt k �rgSX�qˆWt tt |ƒƒƒ} x"|D]}|| k�r<| j|ƒ�q¥sz'commands.cpulist2hex..)r¡Úcpulist2bitmaskr(Úzfillr5rœ)rr1ZulrˆZlsr)r rÚ cpulist2hex™s    zcommands.cpulist2hexcCs$d}x|D]}|td|ƒO}q W|S)Nrr–)Úpow)rr1rˆrrrrr¨§s zcommands.cpulist2bitmaskcsdj‡fdd„|DƒƒS)NrŒc3s|]}ˆt|ƒVqdS)N)r)r¦r)Úprefixrrr§®sz*commands.cpulist2string..)r5)rr1r¬r)r¬rÚcpulist2string­szcommands.cpulist2stringcCsb|dd…jƒdkrH|dd…}|dd…jƒdkrHdd„|j|ƒDƒStjd|ƒ}dd„|DƒS)Nrr¥zcpulist:cSsg|]}dt|ƒ‘qS)rŠ)r)r¦rrrrú ¸sz(commands.devstr2devs..z\s*(?.)Úallr(rqZNAMES_MAX_LENGTH)rÚnamerrrÚ is_valid_name%szcommands.is_valid_name)T)r#r#)r#)Nr)N)FF)r&F)F)F)F)F)T)T)T)r•)r&)0Ú__name__Ú __module__Ú __qualname__r r rrr!r"r%r'r,r3r7r?rArUrWrZr[r\r_rcrdrkrorprrr„r‰r‹r’r�r¡r£r¤rªr¨r­r¯r°r·rÁrÃrÅrÆrÌrÐrrrrrsZ        '   D    r)rOrlZ tuned.logsZtunedr_rCrYZ tuned.constsrqrÚ subprocessZtuned.exceptionsrZlogsrr rrrrrÚs