ó
è?F[c           @   sB   d  d l  m Z d  d l Z d  d l Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t	   InstallerNt   Tracc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s6  
    Install Trac and DAV-SVN
    Sets up a Vhost pointing to [Trac]->home
    Using the config parameter [Trac]->hostname
    Sets up a trac environment for every directory found under [Trac]->data_dir

    [Trac]
    name = My Foo Server
    hostname = trac.foo.com
    home = /mnt/sites/trac
    data_dir = /mnt/trac
    svn_dir = /mnt/subversion
    server_admin = root@foo.com
    sdb_auth_domain = users
    # Optional
    SSLCertificateFile = /mnt/ssl/foo.crt
    SSLCertificateKeyFile = /mnt/ssl/foo.key
    SSLCertificateChainFile = /mnt/ssl/FooCA.crt

    c         C   s„   |  j  d d t d t ƒ|  j  d d t d t ƒ|  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d	 ƒ |  j  d
 ƒ d  S(   Ns   apt-get -y install tract   notifyt   exit_on_errors!   apt-get -y install libapache2-svns   a2enmod ssls   a2enmod mod_pythons   a2enmod dav_svns   a2enmod rewrites   touch /var/log/boto.logs   chmod a+w /var/log/boto.log(   t   runt   True(   t   self(    (    s@   lib/python2.7/site-packages/boto/pyami/installers/ubuntu/trac.pyt   install0   s    c   
      C   sh  t  j j d d ƒ j ƒ  } | rd| j d ƒ } t d | d d ƒ } | j d ƒ t  j j d d ƒ rõ | j d	 ƒ | j d
 ƒ | j d t  j j d d ƒ j ƒ  ƒ | j d | ƒ | j d ƒ | j d | ƒ | j d ƒ | j d ƒ n | j d
 ƒ | j d t  j j d d ƒ j ƒ  ƒ | j d | ƒ | j d t  j j d d ƒ j ƒ  ƒ | j d t  j j d d ƒ j ƒ  ƒ | j d ƒ | j d ƒ | j d ƒ | j d ƒ | j d ƒ | j d ƒ | j d ƒ | j d t  j j d d ƒ ƒ | j d ƒ | j d ƒ | j d  ƒ t  j j d d! ƒ } x— t j | ƒ D]† } | d d k rL| j d" | ƒ | j d# ƒ | j d$ ƒ | j d% ƒ | j d& | | f ƒ | j d' | ƒ | j d  ƒ qLqLWt  j j d d( ƒ } xl t j | ƒ D][ } | d d k rû| j d) | ƒ | j d* ƒ | j d+ | | f ƒ | j d  ƒ qûqûW| j d, ƒ | j d- ƒ | j d. ƒ | j d/ ƒ t  j j d d ƒ } | rÊ| j d0 ƒ | j d1 | ƒ n  t  j j d d2 ƒ } | rù| j d3 | ƒ n  t  j j d d4 ƒ }	 |	 r(| j d5 |	 ƒ n  | j d6 ƒ | j	 ƒ  |  j
 d7 | d ƒ |  j
 d8 ƒ n  d  S(9   NR   t   hostnamet   .s   /etc/apache2/sites-available/%si    t   ws   NameVirtualHost *:80
t   SSLCertificateFiles   NameVirtualHost *:443

s   <VirtualHost *:80>
s   	ServerAdmin %s
t   server_admins   	ServerName %s
s   	RewriteEngine On
s!   	RewriteRule ^(.*)$ https://%s$1
s   </VirtualHost>

s   <VirtualHost *:443>
s   	DocumentRoot %s
t   homes   	<Directory %s>
s,   		Options FollowSymLinks Indexes MultiViews
s   		AllowOverride All
s   		Order allow,deny
s   		allow from all
s   	</Directory>
s   	<Location />
s   		AuthType Basic
s   		AuthName "%s"
t   names   		Require valid-user
s,   		AuthUserFile /mnt/apache/passwd/passwords
s   	</Location>
t   data_dirs   	<Location /trac/%s>
s   		SetHandler mod_python
s%   		PythonInterpreter main_interpreter
s,   		PythonHandler trac.web.modpython_frontend
s   		PythonOption TracEnv %s/%s
s$   		PythonOption TracUriRoot /trac/%s
t   svn_dirs   	<Location /svn/%s>
s
   		DAV svn
s   		SVNPath %s/%s
s%   	ErrorLog /var/log/apache2/error.log
s   	LogLevel warn
s0   	CustomLog /var/log/apache2/access.log combined
s   	ServerSignature On
s   	SSLEngine On
s   	SSLCertificateFile %s
t   SSLCertificateKeyFiles   	SSLCertificateKeyFile %s
t   SSLCertificateChainFiles   	SSLCertificateChainFile %s
s   </VirtualHost>
s   a2ensite %ss    /etc/init.d/apache2 force-reload(   t   botot   configt   gett   stript   splitt   opent   writet   ost   listdirt   closeR   (
   R   t   domaint   domain_infot   cnfR   t   envR   R   R   R   (    (    s@   lib/python2.7/site-packages/boto/pyami/installers/ubuntu/trac.pyt   setup_vhost<   s‚    &&&& 
c         C   s   |  j  ƒ  |  j ƒ  d  S(   N(   R   R!   (   R   (    (    s@   lib/python2.7/site-packages/boto/pyami/installers/ubuntu/trac.pyt   main‰   s    
(   t   __name__t
   __module__t   __doc__R   R!   R"   (    (    (    s@   lib/python2.7/site-packages/boto/pyami/installers/ubuntu/trac.pyR      s   		M(   t&   boto.pyami.installers.ubuntu.installerR    R   R   R   (    (    (    s@   lib/python2.7/site-packages/boto/pyami/installers/ubuntu/trac.pyt   <module>   s   