mò ©ËŽGc@sÓdkTdkTdkTdkZdkZdkZdd„Zddd„Zdefd„ƒYZdefd „ƒYZ d efd „ƒYZ d e fd „ƒYZ defd„ƒYZ defd„ƒYZ dS((t*Nt#cCs°t|ƒt|ƒjo|t|ƒ |jop|t|ƒ}d}xNtt|ƒƒD]:}|||joPqY||ti joqYd}qYW| Sq¬dSndSdS(Nii( tlentlinettexttresttgot_onetrangetitcctstringt whitespace(RRR RRR((tb/home/faculty/youssef/public_html/pacman/sample_cache/tarballs/pre/tmp/pacman-3.29/src/TextLine.pyt lineFront s  tbackcsÃ|djp|djp |djot|‡‡d†ƒSn|}xEt|ƒdjo1|idƒ}ti||ƒdjoPqKqKWt|ƒdjot |dˆˆƒSndSdS(NRtfronttcst|ˆˆƒS(N(R RRR (R(R R(R tsi( t justaftertexiststlinestlines2RtpopRR tcountR RR (RRR RRR((RR R t lineFrontss' t SSHUserAccesscBsYtZdZdZdZd„Zd„Zd„Zd„Zd„Z d „Z d „Z RS( Ns SSH accesssgrant SSH accesss SSH AccesscCs6||_||_td|d|idƒ|_dS(Nt~s/.ssh/authorized_keysR(tusernametselft _usernamet public_keyt _public_keytTextLineInsertiont _insertion(RRR((R t__init__(s  cCs#|i|ijo|i|ijS(N(RRtsshR(RR#((R tequal-scCsŒti|idƒd}d|jo|d|id}n|id}t|iƒdjo||id d}n||i}|S(Nt iÿÿÿÿt@s => s, private key: is...(R tsplitRRt remotenameRtsR(RR)R(((R tstr/s   cCs |iiƒS(N(RR!t satisfied(R((R R+6scCs |iiƒS(N(RR!t satisfiable(R((R R,7scCs |iiƒS(N(RR!tacquire(R((R R-8scCs |iiƒS(N(RR!tretract(R((R R.9s( t__name__t __module__ttypetactionttitleR"R$R*R+R,R-R.(((R R#s      tSSHUserHasAccesscBs,tZdZdZdZd„Zd„ZRS(NsSSH has accessstest for SSH accesssSSH Has AccesscCs |iƒS(N(RR+(R((R R-@scCs |iƒS(N(RR+(R((R R.As(R/R0R1R2R3R-R.(((R R4;s  tGlobusUserAccesscBs\tZdZdZdZdd„Zd„Zd„Zd„Zd „Z d „Z d „Z RS( Ns Globus accesssadd DN to globus grid-mapfiles Globus AccessRcCsv||_||_||_d|idd|i}|djotd|dƒ|_ ntd|dƒ|_ dS(Nt"R%tlasts/etc/grid-security/grid-mapfileRR( tdnstringRt_dnt localUsernameRtpositiont _positiontgmR R!(RR8R:R;R=((R R"Hs    cCs#|i|ijo|i|ijS(N(RR9tgaR(RR>((R R$PscCs|id|iS(Ns => (RR9R(R((R R*QscCstdtiidƒ ƒ}|iƒoòtƒ}|i|i |i ƒp&td|i d|i dƒ}q|i djoC|i |i |i ƒp&td|i d|i dƒ}qq|i d joC|i|i |i ƒp&td|i d |i dƒ}qqn|S( Ns*No /etc/grid-security/grid-mapfile exists.s/etc/grid-security/grid-mapfiles Grid map file does not contain [s ] mapped to [s].tfirstt[s$] is mapped to another user before [R7s#] is mapped to another user after [(tReasontostpathRtreasontokt GridMapFiletgridmapthasDNRR9RR<tfirstDNtlastDN(RRDRG((R R+Ss  &**cCs |iiƒS(N(RR!R,(R((R R,cscCs |iiƒS(N(RR!R-(R((R R-dscCs |iiƒS(N(RR!R.(R((R R.es( R/R0R1R2R3R"R$R*R+R,R-R.(((R R5Cs      tGlobusUserHasAccesscBs,tZdZdZdZd„Zd„ZRS(Nshas Globus accesssHas Globus Accessstest for Globus accesscCs |iƒS(N(RR+(R((R R-lscCs |iƒS(N(RR+(R((R R.ms(R/R0R1R3R2R-R.(((R RKgs  R cBshtZdZdZdZddd„Zd„Zd„Zd „Zd „Z d „Z d „Z d „Z RS(Ns insert textsinsert text linesText Line InsertionsRRcCs1||_||_||_||_d|_ dS(NR( RCRt_pathRt_texttcommentt_commenttjustAfterLineContainingt _justAftert_insert(RRCRRPRN((R R"ts     cCs\|i|ijoI|i|ijo6|i|ijo#|i|ijo|i|ijS(N(RRLttRMRORQRR(RRS((R R${scCs…|idjod|id|idSnT|idjod|id|idSn&d|id|id|idSdS( NRR@s] at the beginning of [t]Rs] at the end of [s] in [s] just after line containing [(RRQRMRL(R((R R*‚s cCsÑg}tƒ}tdt|iƒdtiit|iƒƒ ƒ}|i ƒout|iƒ|_y,t |idƒ}|i ƒ}|i ƒWqÇttfj otd|idƒ}qÇXn||fS(NsFile [s] doesn't exist.trsError reading [s].(RRARDtfullpathRRLRBRCRREtopentft readlinestclosetIOErrortOSError(RRXRRD((R tgetLinesŠs 6   cCstƒS(N(RA(R((R R,˜scCsÝ|iƒ\}}|idjp |idjp|idjoHtd|id|idt|t i i |iƒ|i ƒ ƒ}nPtd|id|id|idt|t i i |iƒ|i ƒ ƒ}|S(NRRRR@s] does not contain [s].s] just after [( RR]RDRRQRARLRMRRBRCt expandvarsRO(RRRD((R R+™s 0HOc CsÜ|iƒ\}} |iƒoÎtii|iƒ|_|i djo|id}nˆti i dƒoti d}n tƒ}|id|i d|dtitiƒƒd}tidd |d |id ƒ|id jo| id |ƒqí|idjo| i|ƒqí|idjo| i|ƒqíd }g}xV| D]N}|i|ƒ| o3ti||iƒd jo|i|ƒd}qXqXW|o |} qítd|id|id| ƒ}|} n|iƒoÞtidd|d |idƒ}|iƒo|yPti ƒ}t"|dƒ}x| D]}|i$|ƒqQW|i%ƒ||_&Wq¨t't(fj otdƒ}q¨Xn|iƒot)d|d|iƒ}qØn|S(NRs t PAC_ANCHORs s - Inserted from s on s. Do not edit. RsInserting text [s] into [s]...RiRis Cannot find [s] in [s].s text-insertsAbout to insert [s]. OK?tws Error writing to temporary file.smv -f R%(*RR]RDRRERBRCR^RMROtnewlinetenvironthas_keyttxtt getusernamettimetctimetverbotlogRLRQtinserttappendRRRR RRAtasktrettempfiletmktempttmpRWRXtwriteRZRRR[R\texecute( RRdRpRRaRRDRRXR((R R-¡sX  7# $  &  %     #cCs |iƒ\}}|iƒotg}d}xX|D]P}||ijo-t i dd|d|i dƒd}q2|i |ƒq2W|}|pd|id|i dGHnt id d |id|i d ƒ}|iƒosyGtiƒ}t|d ƒ}x|D]}|i|ƒq W|iƒWqZttfj otd ƒ}qZXn|iƒo(td|d|i ƒ}d|_qœn tƒ}|S(NiRsRemoving text [s] from [s]...is Warning: [s] has been removed from [s text-insertsAbout to remove [s]. OK?R`s Error writing to temporary file.smv -f R%R(RR]RDRRERRRRRRhRiRLRkRlRmRnRoRpRWRXRqRZR[R\RARr(RRpRXRRRRDR((R R.Ês: # (    ( R/R0R1R2R3R"R$R*R]R,R+R-R.(((R R os      )tTextFileContainsTextcBs\tZdZdZdZdd„Zd„Zd„Zd„Zd „Z d „Z d „Z RS( Ns contains textstest if file contains textsFile Contains TextsRcCs||_||_||_dS(N(RCRRLRRMtcomment_charactert_cc(RRCRRt((R R"îs  cCs/t|iƒt|iƒjo|i|ijS(N(RVRRLRSRM(RRS((R R$óscCsd|id|idS(NR@s] in [RT(RRMRL(R((R R*ôscCstƒS(N(RA(R((R R,öscCstd| d|i ƒS(NR@s] has not been checked yet.(RARtacquired(R((R R+÷scCs€tƒ}|iƒo:tdt|iƒdtiit|iƒƒ ƒ}n|iƒout|iƒ|_y,t |idƒ}|i ƒ}|i ƒWqÒttfj otd|idƒ}qÒXn|iƒod}xe|D]]}t|ƒdjoD|d|ij o/|ti||iƒ}|djoPqIqìqìWtd|id|id|djƒ}n|S(NsFile [s] doesn't exist.RUsError reading [s].is] does not contain [(RARDRERVRRLRBRCRRWRXRYRRZR[R\RRRRuR RM(RRRXRRDR((R R-øs*  :    ( /cCs |iƒS(N(RR+(R((R R. s( R/R0R1R2R3R"R$R*R,R+R-R.(((R Rsés      (t Environmentt ExecutiontGridMapRnRfR R RRR4R5RKR Rs( R5R4RR RnRsRR RfRKR ((R t?s  $z