o
    Býá`u  ã                   @   s„   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZdd„ Zdd„ Zdd„ Z	dd	„ Z
ddd„Zdd„ Zedkr@eeƒ ƒ dS dS )é    Nc                 C   sd   t  | | d ¡ t| dƒ}t| d dƒ}|D ]}||v r"| ||¡}| |¡ q| ¡  | ¡  d S )Nú~ÚwÚr)ÚshutilÚmoveÚopenÚreplaceÚwriteÚclose)ÚfileÚ	searchExpÚ
replaceExpÚdestinationÚsourceÚline© r   ú./home/birch/BIRCH/install-scripts/birchhome.pyÚ
replaceAll   s   
r   c                 C   s>   t j | ¡rt  | ¡}t  | |jtjB tjB tjB ¡ d S d S ©N)	ÚosÚpathÚexistsÚstatÚchmodÚst_modeÚS_IREADÚS_IRGRPÚS_IROTH©ÚfilenameÚstr   r   r   Úchmod_ar   s   
ÿ
ÿþr!   c                 C   sP   t j | ¡r&t  | ¡}t  | |jtjB tjB tjB tj	B tj
B tjB ¡ d S d S r   )r   r   r   r   r   r   ÚS_IEXECr   ÚS_IXGRPr   ÚS_IXOTHr   r   r   r   r   Ú	chmod_arx   s   
ÿÿÿ
þþr%   c                 C   s@   t ƒ }tj |¡rt|dƒ}|D ]}t | |¡r| |¡ q|S )Nr   )Úlistr   r   r   r   ÚreÚsearchÚappend)Úpatternr   Úresultsr   r   r   r   r   Úgrep   s   

€r,   ú..c                 C   sp   t dtj | ddd¡ƒ}t|ƒdkr |d  d¡d  d¡}|S ttj | ddd	¡ƒ}| ¡  d¡}| 	¡  |S )
NzBirchProps.homedirÚlocalÚadminúBIRCH.propertiesr   ú=é   z
 zbirchdir.param)
r,   r   r   ÚjoinÚlenÚsplitÚrstripr   Úreadliner
   )ÚBASE_DIRÚgrep_resÚBIRCHÚbirchdirr   r   r   Ú	findbirch'   s   ýr<   c                 C   sö  d| v rt dƒ t dƒ t d¡ d S tj | ¡rìtdtj dddd	¡ƒ}t|ƒd
kr©|d
  	d¡d  
¡ dkr©tj | dd¡tj | dd¡tj | dd¡tj | dd¡tj | dd¡tj | dd¡tj | dd¡tj | ddd¡tj | dd¡tj | dd¡tj | ddd¡tj | ddd¡tj | ddd¡tj | dd¡tj | dd¡g}ntj | dd¡tj | dd¡tj | dd¡tj | dd¡tj | dd¡tj | dd¡tj | dd¡tj | ddd¡tj | dd¡tj | dd¡tj | ddd¡tj | ddd¡tj | ddd¡tj | dd¡tj | dd¡tj | ddd ¡tj | dd!d"¡tj | dd#d$¡tj | d%d&d'¡g}|D ]}tj |¡rWt d(|  d) | ƒ t|d*| ƒ t|ƒ q:ttj | dd¡ƒ ttj | dd¡ƒ ttj | d+d,¡ƒ ttj | ddd¡ƒ t| ƒ d-D ]$}tj | |¡}tj |¡s«tj |¡r«t |tj¡r«t|ƒ qˆtj | d.d/d0d1¡}tj |¡rÊt|d2t ¡ ƒ t|ƒ tj | d.dd/d0d1¡}tj |¡rêt|d2t ¡ ƒ t|ƒ d S d S t d3|  d4 ƒ t d¡ d S )5NÚBIRCHDEVz*>>> birchhome.py cannot be run in BIRCHDEVz3>>> Doing so would clobber the master copy of BIRCHr2   zBirchProps.minibirchr-   r.   r/   r0   r   r1   Útruezcshrc.sourcezprofile.sourceÚadd_to_cshrcÚadd_to_loginÚadd_to_profilez
newuser.pyÚnewuserÚdatÚfastaÚfastgbsúinstall-scriptszhtmldir.paramÚ
XLandscapeÚXLandÚ	launcherszbirch.desktopzadmin.uninstallÚjavaÚ	ArrayNormzArrayNorm.laxÚJalviewzJalview.laxÚgenographerzgenograph.cfgÚpkgÚNCBIz.ncbircz,Setting location of BIRCH home directory as z in z/home/psgendb/BIRCHDEVzinstall-birchzmakelinks.sh)r/   rC   ÚdocÚGenBankrF   rJ   Úlabacer.   ÚmanlrN   ÚpythonÚpublic_htmlÚscriptÚ	tutorialsrU   ÚbirchdbÚwspecz
passwd.wrmÚpsgendbzNo such directory: z	. Exiting)ÚprintÚsysÚexitr   r   Úisdirr,   r3   r4   r5   ÚlowerÚisfiler   r!   r%   ÚislinkÚaccessÚW_OKr   ÚgetpassÚgetuser)r:   r9   ÚFILELISTr   r;   ÚbdirÚstdwrmÚlwormr   r   r   Ú	birchhome1   sŽ   &ñí€€þrj   Ú__main__)r-   )r\   r'   r   Úos.pathr   rd   r   r   r!   r%   r,   r<   rj   Ú__name__r   r   r   r   Ú<module>   s   8


]ÿ