ó ˯t_c@sûddlZddlZddlZddlZddlZddlmZdefd„ƒYZdefd„ƒYZ defd„ƒYZ d efd „ƒYZ e d kr÷e ƒZ e jejjd ƒƒd „Zd„Zee jdƒndS(iÿÿÿÿN(tGLibt SingletoncBseZdZd„ZRS(cOsA|js:tt|ƒj|||Ž|_|jjƒn|jS(N(t _instancetsuperRt__new__t __init_once__(tclstargstkwargs((s1/usr/lib64/gedit/plugins/externaltools/library.pyRs !N(t__name__t __module__tNoneRR(((s1/usr/lib64/gedit/plugins/externaltools/library.pyRst ToolLibrarycBs>eZd„Zd„Zd„Zd„Zdeed„ZRS(cCs g|_dS(N(t locations(tself((s1/usr/lib64/gedit/plugins/externaltools/library.pyR'scCsQg|_tjƒdkr]x?|jƒD].}|jjtjj|ddddƒƒq(Wn|jj|ƒtjƒdkr”tjjdƒ}nHtjdƒ}|rÁtjj|dƒ}ntjjt j ƒdƒ}|jj d |ƒtjj |jd ƒs;tj |jd ƒt|d ƒ|_|jƒnt|d ƒ|_dS( NtWindowstgedittpluginst externaltoolsttoolss ~/gedit/toolstGNOME22_USER_DIRs gedit/toolsit(R tplatformtget_xdg_data_dirstappendtostpathtjoint expandusertgetenvRtget_user_config_dirtinserttisdirtmakedirst ToolDirectoryttreetimport_old_xml_store(Rtdatadirtdttoolsdirtuserdir((s1/usr/lib64/gedit/plugins/externaltools/library.pyt set_locations*s" / cCs4tjdƒ}|r*|jtjƒ}nd}|S(Nt XDG_DATA_DIRSs/usr/local/shares /usr/share(s/usr/local/shares /usr/share(RRtsplittpathsep(Rtdirs((s1/usr/lib64/gedit/plugins/externaltools/library.pyRGs c Cs†ddljj}tjdƒ}|r?tjj|dƒ}ntjjtjƒdƒ}tjj |ƒspdSdGH|j |ƒ}|j ƒ}xï|D]ç}xt|j j D](}|j|jdƒkrª|}PqªqªWt|j ƒ}|jdƒ|_|jƒ|j j j|ƒ|jdƒ|_|jdƒ|_|jdƒ|_|jd ƒ|_|jd ƒ|_|j|jƒq—WdS( NiÿÿÿÿRsgedit/gedit-tools.xmls9External tools: importing old tools into the new store...tlabelt descriptiont acceleratort applicabilitytoutputtinput(txml.etree.ElementTreetetreet ElementTreeRRRRRRtisfiletparsetgetrootR#RtnametgettTooltautoset_filenameRtcommenttshortcutR1R2R3tsave_with_scriptttext( RtetR(tfilenametxtreetxroottxtooltittool((s1/usr/lib64/gedit/plugins/externaltools/library.pyR$Rs2   trc Cs'|s|st‚|dkr"dS|dkrÏ|rF|rF|j}nI|rf| rf|jdg}n)|rƒ| rƒ|jd}n tdƒ‚x9|D]1}tjj||ƒ}tjj|ƒr–|Sq–WdStjj|jd|ƒ}tjj|ƒ}tjj |ƒstj |ƒn|SdS(NRIiis+system and local can't be both set to False( tAssertionErrorR R t ValueErrorRRRtlexiststdirnameR tmkdir( RRtmodetsystemtlocalR RGtpRM((s1/usr/lib64/gedit/plugins/externaltools/library.pyt get_full_pathts*        (R R RR)RR$tTrueRS(((s1/usr/lib64/gedit/plugins/externaltools/library.pyR &s    "R"cBs_eZd„Zd„Zd„Zd„ZeeƒZd„ZeeƒZ d„Z d„Z RS(cCs{tt|ƒjƒtƒ|_tƒ|_t|tƒrR||_|j|_nd|_||_||_ |j ƒdS(N( RR"t__init__tlisttsubdirsRt isinstancetparenttlibraryR RMt_load(RRYRM((s1/usr/lib64/gedit/plugins/externaltools/library.pyRUs      cCsŠtƒ}xh|jjD]Z}tjj||jƒ}tjj|ƒsLqnx!tj|ƒD]}d||((s1/usr/lib64/gedit/plugins/externaltools/library.pyt get_commentPscCs|jd|ƒdS(NR˜(R‹(RRv((s1/usr/lib64/gedit/plugins/externaltools/library.pyt set_commentVscCs |jjdƒ}|r|SdS(NtInputtnothing(RpR;(RR3((s1/usr/lib64/gedit/plugins/externaltools/library.pyt get_input[scCs|jd|ƒdS(NR›(R‹(RRv((s1/usr/lib64/gedit/plugins/externaltools/library.pyt set_inputascCs |jjdƒ}|r|SdS(NtOutputs output-panel(RpR;(RR2((s1/usr/lib64/gedit/plugins/externaltools/library.pyt get_outputfscCs|jd|ƒdS(NRŸ(R‹(RRv((s1/usr/lib64/gedit/plugins/externaltools/library.pyt set_outputlscCs |jjdƒ}|r|SdS(Ns Save-filesRœ(RpR;(Rt save_files((s1/usr/lib64/gedit/plugins/externaltools/library.pytget_save_filesqscCs|jd|ƒdS(Ns Save-files(R‹(RRv((s1/usr/lib64/gedit/plugins/externaltools/library.pytset_save_fileswscCs |jjdƒ}|r|SgS(NRn(RpR;(Rt languages((s1/usr/lib64/gedit/plugins/externaltools/library.pyt get_languages|scCs|jd|ƒdS(NRn(R‹(RRv((s1/usr/lib64/gedit/plugins/externaltools/library.pyt set_languages‚scCs|jdkrtS|jj|jƒƒ}|dkr;tStj|ddddƒ}x0|D](}|jƒdkr{q]n|j dƒSWdS(NRIiRzsutf-8Rs#!( RCR RTRZRSReR|R}RuR(RRCR†R‰((s1/usr/lib64/gedit/plugins/externaltools/library.pyt has_hash_bang‡s  cCs)|jdkrdgS|jj|jƒƒ}|dkrAdgStj|ddddƒ}tƒ}x.|D]&}|jdƒr…Pn|j |ƒqlWxd|D]\}|jdƒr¸qn|jdƒoÐd |ks|j ƒd krõ|j |ƒnPqqWx|D]}|j |ƒqW|j ƒ|S( Ns #!/bin/sh RIiRzsutf-8s# [Gedit Tool]s##s# R{R( RCR RZRSReR|R}RVRRRuR…(RRCR†tlinesR‰((s1/usr/lib64/gedit/plugins/externaltools/library.pyt get_script—s,      cCs¢dg}x…|jjƒD]t}|d|jkri|jd|d|j|dd|dƒfƒq|ddk r|jd|ƒqqWdj|ƒdS(Ns# [Gedit Tool]is# %s=%sis (RptitemsRsRR R(RR©titem((s1/usr/lib64/gedit/plugins/externaltools/library.pyt_dump_properties¶s 7c Cs|jj|jdƒ}tj|ddddƒ}g}g}t}xº|D]²}|jdƒ}|sw|j|ƒqL|jdƒr–|j|ƒqL|j ƒjdƒrëd|ksÛd |ksÛd |ksÛd |krë|j|ƒqL|j|ƒt }qLWx[|D]S}|j |dƒt |t ƒrEt|dd ƒ}n |d 7}|j |ƒq W|jƒ}t |t ƒrt|d ƒ}n|j |ƒ|j d ƒxJ|D]B}t |t ƒrÙt|dd ƒ}n |d 7}|j |ƒq®W|jƒtj|dƒt |_dS(NtwiRzsutf-8s s#!t#s-*-sex:svi:svim:tutf8u iè(RZRSRCR|R}RTtrstripRRRuRjtwriteRXtbytestunicodeR­R…RtchmodRo( RtscriptRCR†theadertcontenttinheaderR‰toutstr((s1/usr/lib64/gedit/plugins/externaltools/library.pyR@¿sD E          cCs#|jr|j|jƒƒndS(N(RoR@Rª(R((s1/usr/lib64/gedit/plugins/externaltools/library.pytsaveñs cCsÒ|jdk rdS|jj}|dkr>|tjj7}n|jjƒjddƒjddƒ}|j j ||ƒrÅd}x.|j j |d||fƒr±|d7}q„Wd||f}n||_dS(NRt t-t/is%s-%di( RCR RYRRtsepR:tlowertreplaceRZRS(RRMRfRG((s1/usr/lib64/gedit/plugins/externaltools/library.pyR=õs  '#N(1R R tretcompileR‚R RURqRrRyR[R‹RŒRReRmRRŽtcommandR‘R’R1RgR”R:R–R—R?R™RšR>RRžR3R R¡R2R£R¤R¢R¦R§R¥R¨RªR­R@R»R=(((s1/usr/lib64/gedit/plugins/externaltools/library.pyR<ÔsX    !                           2 t__main__s~/.config/gedit/toolscCs!|dd|j|jfGHdS(Ns s%s: %s(RCR:(tttindent((s1/usr/lib64/gedit/plugins/externaltools/library.pyt print_tool scCsb|d|jdGHx"|jD]}t||dƒqWx"|jD]}t||dƒqCWdS(Ns R¾i(RMRWt print_dirRRÈ(R&RÇRG((s1/usr/lib64/gedit/plugins/externaltools/library.pyRÉ s i(R|RRÂR~Rt gi.repositoryRtobjectRR R"R<R RZR)RRRÈRÉR#(((s1/usr/lib64/gedit/plugins/externaltools/library.pyts      iEÿ2