Ñò ¸npVc @sddkZddkZddkZddkZddkZddkZed„Zdfd„ƒYZdefd„ƒYZ dS(iÿÿÿÿNcCsÑd}ti}|o|tiB}ny,ti|||ƒ}ti|tiƒWnktj o_}|i\}}|djo+yti |ƒWq­tj oq­Xnt ||ƒ‚nXti |dƒS(Niÿÿÿÿsr+( tostO_RDWRtO_CREATtopentfcntltlockftLOCK_EXtOSErrortargstclosetIOErrortfdopen(tfilenametpermstcreatetfdtflagsterrterrnotstrerr((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt openLockeds    t IPAChangeConfcBséeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zdd„Zd„Zed„Zdd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs|||_d |_d |_|id|_d|_|id|_d|_|id|_d|_d|_ d |_ dS(Nts = t=it#s t[t]t{t}s.ipabkp(RRR(s = R(R(s (RR(RR( tprognametindenttassigntdassigntcommenttdcommentteoltdeolt sectnamdelt subsectdelt backup_suffix(tselftname((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt__init__7s       cCs ||_dS(N(R(R(R)((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt setProgNameDscCsSt|ƒtjo ||_n0t|ƒtjo|f|_n tdƒ‚dS(Ns Indent must be a list of strings(ttypettupleRtstrt ValueError(R(R((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt setIndentGs  cCs@t|ƒtjo ||_n |f|_|id|_dS(Ni(R,R-RR (R(R((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytsetOptionAssignmentOs  cCs@t|ƒtjo ||_n |f|_|id|_dS(Ni(R,R-R!R"(R(R!((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytsetCommentPrefixVs  cCs@t|ƒtjo ||_n |f|_|id|_dS(Ni(R,R-R#R$(R(R#((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt setEndLine]s  cCs ||_dS(N(R%(R(tdelims((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytsetSectionNameDelimitersdscCs ||_dS(N(R&(R(R4((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytsetSubSectionDelimitersgscCsCx<|iD]1}|iƒi|ƒo|iƒt|ƒSq WtS(N(R!tlstript startswithtlentFalse(R(tlinetv((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt matchCommentjs  cCs|iƒdjotStS(NR(tstriptTrueR:(R(R;((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt matchEmptypscCs”di|iƒiƒƒ}t|iƒdjotS|i|idƒptS|i|idƒptS|t|idƒt|idƒ !S(NRiii(tjoinR>tsplitR9R%R:R8tendswith(R(R;tcl((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt matchSectionuscCss|i|ƒotS|i|idƒ}t|ƒdjotS|diƒ|idjo|diƒStS(Niii(R=R:RBR R9R>R&(R(R;tparts((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytmatchSubSectionscCs8|i|ƒotS|iƒ|idjotStS(Ni(R=R:R>R&R?(R(R;((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytmatchSubSectionEndŒs cCs<t|iƒdjo|S|id||id|iS(Niii(R9R%R$(R(tsection((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytgetSectionLine•sicCsìd}|t|iƒjot|iƒd}nx²|D]ª}|ddjoP||id|d|id|i7}||i|d|dƒ7}q:n|ddjoz||i||d|i|id|i7}||i|d|dƒ7}||i||id|i7}q:n|dd jo6||i||d|i|d|i7}q:n|dd jo#||i|d|i7}q:n|dd jo||i7}q:ntd |dd ƒ‚q:W|S(NRiR,RIiR)tvaluet subsectiontoptionR!temptysUnknown type: [R( R9RR%R$tdumpR R&R"t SyntaxError(R(toptionstleveltoutputto((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyROšs2+2#/ cCs¾|i|ƒohdd6dd6S|i|ƒ}|o hdd6dd6|iƒd6S|i|idƒ}t|ƒdjotdƒ‚nh|d iƒd6d d6|diƒd6S( NRNR)R,R!RKiis!Syntax Error: Unknown line formatiRM(R@R=trstripRBR R9RPR>(R(R;RKRF((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt parseLine¶s cCsŒd}xy|D]q}|d|jo|d|jo ||fS|o-|ddjp|ddjo |dfS|d7}q W|dfS(NiR,R)RIRLi(tNone(R(toptsR,R)texclude_sectionstnumRT((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytfindOptsÅs" ) cCs‰g}|t|iƒjot|iƒd}nxO|D]G}|ddjoˆ|i|d|dƒ}|i|id|d|id}|ihdd6dd6|d6ƒx|D]}|i|ƒq»Wq:n|ddjoÂ|i|d|dƒ}|i||d|i|id}|ihdd6dd6|d6ƒx|D]}|i|ƒqTW|i||id}|ihdd6dd6|d6ƒq:n|dd joM|i||d|i|d}|ihdd6dd6|d6ƒq:n|ddjo|i|ƒq:n|dd jo)|ihdd6dd6d d6ƒq:ntd |dd ƒ‚q:W|S(NiR,RIRKiR)R!RLRMRNRsUnknown type: [R( R9Rt commentOptsR"R%tappendR R&RP(R(tinoptsRRRXRTtnotvaltn((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyR\ÐsF'"'""$" "c Csåg}xØ|D]Ð}|ddjp|ddjo|i||d|dƒ\}}|p|i|ƒq n|ddjoK|i|d|dƒ}|ih|dd6|dd6|d6ƒq n|ddjo8|i|dƒ}x|D]} |i| ƒqúWq n|dd joq ntd |dd ƒ‚n|ddjp|dd jo|i|ƒq n|dd jo2|i|d |dtƒ\}}|p|i|ƒq n|ddjp|dd jo’|ddjo)|d|djo|i|ƒq n|ddjo@|ihdd6dd6|i|d|i|dd6ƒq q n|ddjo|i|ƒq ntd |dd ƒ‚ntd|dd ƒ‚q W|S(NR,RIRLR)tactiontsetRKR!tremovesUnknown action: [RRNRMsUnknown type: [( R[R]tmergeOldR\RPR?RWR"R ( R(toldoptstnewoptsRXRTRZR_tmotcotc((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyReösV"# *" " "& ) cCs¤d}x—|D]}|ddjp|ddjo”|i||d|dƒ\}}|p)|ddjo|i|ƒq q n|ddjo|i|d|dƒq n|d }q n|dd jog|i||d|dtƒ\}}|p)|ddjo|i|ƒq q n|d }q n|dd jp|dd jo!|i||ƒ|d 7}q ntd |ddƒ‚q WdS(NiR,RIRLR)RbRcRKiRMR!RNsUnknown type: [R(R[R]tmergeNewR?tinsertRP(R(RXRgtclineR_RZRT((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyRk's6"# & " cCs&|i||ƒ}|i||ƒ|S(N(ReRk(R(RfRgRX((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytmergeJs c Csªg}g}d}g}d}|}|}x@|D]8} |i| ƒ} | oR|dj o&|ih|d6dd6|d6ƒng}|}|}| }q1n|i| ƒ} | o6|dj otdƒ‚ng}|}| }q1n|i| ƒ} | oR|djotdƒ‚n|ih|d6dd6|d6ƒd}|}q1n|i|i| ƒƒq1Wt|ƒdj o&|ih|d6dd6|d6ƒn|S( NR)RIR,RKs(nested subsections are not supported yets)Unmatched end subsection terminator foundRLi(RWRER]RGRPRHRVR9( R(tfRXtsectoptsRIt subsectoptsRLtcuroptst fatheroptsR;RK((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytparseXsL &  "&c CsÖt}d}t}d}d}zti|||iƒt|dƒ}|i|ƒ}|i||ƒ} |i| ƒ}|i dƒ|i dƒ|i |ƒWdy|o|i ƒnWnt j onXXtS(NRi¤i(R:RWtshutiltcopy2R'RRtRnROtseekttruncatetwriteR R R?( R(tfileRgt autosectiont savedsectiontdoneRSRoRfRQ((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyt changeConf‘s(  c Csåt}d}t}d}d}zyti|||iƒWn)tj o}|idjoqhnXt|dƒ}|idƒ|i dƒ|i |ƒ}|i |ƒWdy|o|i ƒnWntj onXXt S(NRii¤i(R:RWRuRvR'R RRRwRxRORyR R?( R(RzRQR{R|R}RSRoR((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pytnewConf´s,   (t__name__t __module__R*R+R0R1R2R3R5R6R=R@RERGRHRJRORVR:R[R\ReRkRnRtR~R(((s</usr/lib/python2.6/site-packages/SSSDConfig/ipachangeconf.pyR5s0             & 1 #  9 #tSSSDChangeConfcBs³eZeidƒZd„Zd„Zd„Zd„Zd„Z d„Z dd„Z d „Z d „Z d „Zd „Zed „Zed„Zd„Zd„Zdd„ZRS(s.(?P