3 ©ft`°ã@sŒddlmZddlmZddlmZddlZddlZddlZddl Zddlm Z ddl Zddl Zddl mZejdƒZGdd „d e jƒZdS) é)Úabsolute_import)Úprint_function)Úunicode_literalsN)Úcommands)Ú_Údnfc@sleZdZdZedƒZedd„ƒZdd„Zdd„Z d d „Z d d „Z d d„Z dd„Z dd„Zdd„Zdd„ZdS)Ú AliasCommandÚaliaszList or create command aliasescCsl|jƒ}|jdddtdƒd�|jdddtdƒd�|jdd d d d d gtd ƒd�|jdddtdƒd�dS)Nz--enable-resolvingFÚ store_truezenable aliases resolving)ÚdefaultÚactionÚhelpz--disable-resolvingzdisable aliases resolvingÚ subcommandú?ÚlistÚaddÚdeletezaction to do with aliases)Únargsr Úchoicesr r Ú*zcommand[=result]zalias definition)rÚmetavarr )Zadd_mutually_exclusive_groupÚ add_argumentr)ÚparserZ enable_group©rú/usr/lib/python3.6/alias.pyÚ set_argparser*s     zAliasCommand.set_argparsercCsH|jj}|jjdkrd|_tjjjƒ|_|jj ƒ|jj |_ |j ƒdS)NrrT)rr) ÚcliÚdemandsÚoptsrZ root_userrÚaliasesZAliasesÚ aliases_baseZ _load_aliasesÚenabledZresolving_enabledÚ_update_config_from_options)ÚselfrrrrÚ configure9s   zAliasCommand.configurecCsšd}|jjrd}tjtdƒƒ|jjr8d}tjtdƒƒ|dk r–tjjt j j j ƒsft t j j j dƒjƒt jjjt j j j ddd|iƒ|jjƒs–||j_dS)NTzAliases are now enabledFzAliases are now disabledÚwÚmainr!)rZenable_resolvingÚloggerÚinforZdisable_resolvingÚosÚpathÚexistsrrrZALIASES_CONF_PATHÚopenÚcloseÚconfZ BaseConfigZwrite_raw_configfiler Z_disabled_by_environr!)r#r!rrrr"Bs z(AliasCommand._update_config_from_optionscCsži}x”|jjD]ˆ}|jddƒ}|djƒ}t|jƒƒdkrLtjtdƒ|ƒq|jdƒrhtjtdƒ|ƒqt|ƒdkr†tjtdƒ|ƒq|djƒ||<qW|S)Nú=érzInvalid alias key: %sú-zAlias argument has no value: %s) rr ÚsplitÚstripÚlenr'ÚwarningrÚ startswith)r#Z new_aliasesr ÚcmdrrrÚ_parse_option_aliasTs    z AliasCommand._parse_option_aliascCsxtjjtjjjƒs&ttjjjdƒjƒytjjj tjjjƒ}Wn4tj j k rr}zt j tdƒ|ƒdSd}~XnX|S)Nr%zConfig error: %s)r)r*r+rrrÚALIASES_USER_PATHr,r-Z AliasesConfigÚ exceptionsZ ConfigErrorr'r5r)r#r.ÚerrrÚ_load_user_aliaseseszAliasCommand._load_user_aliasescCsdttjjjdƒ}d}|dj|ƒ7}|d7}x*|jƒD]\}}|dj|dj|ƒƒ7}q4W|j|ƒdS)Nr%z[main] zenabled = {} z [aliases] z{} = {} ú ) r,rrrr9ÚformatÚitemsÚjoinÚwrite)r#Ú user_aliasesr!ZfileobjÚoutputÚkeyÚvaluerrrÚ_store_user_aliasespsz AliasCommand._store_user_aliasescCsP|jƒ}|j}|dkrdS|j|ƒ|j||jƒtjtdƒdj|j ƒƒƒdS)NzAliases added: %sz, ) r<rÚupdaterFr!r'r(rr@Úkeys)r#rr.rBrrrÚ add_aliasesys zAliasCommand.add_aliasesc CsŽ|jƒ}|j}|dkrdSg}xF|D]>}y||=|j|ƒWq$tk r`tjtdƒ|ƒYq$Xq$W|j||jƒtjtdƒdj |ƒƒdS)NzAlias not found: %szAliases deleted: %sz, ) r<rÚappendÚKeyErrorr'r(rrFr!r@)r#Úcmdsr.rBZ valid_cmdsr7rrrÚremove_aliases„s zAliasCommand.remove_aliasescCs~|g}y|jj|ƒ}WnHtjjk r^}z(tjtdƒ||dj|jj |ƒƒWYdd}~XnXt tdƒ|dj|ƒfƒdS)Nz%s, alias %s="%s"r=z Alias %s='%s') r Z_resolverr:ÚErrorr'Úerrorrr@rÚprint)r#r7Úargsr;rrrÚ list_alias•s0zAliasCommand.list_aliascCs|jjstjtdƒƒ|jjdkrL|jƒ}|s>tj j tdƒƒ‚|j |ƒdS|jjdkr†|jj }|gkrxtj j tdƒƒ‚|j |ƒdS|jj sÆ|jjs¨tjtdƒƒdSxX|jjD]}|j|ƒq²Wns