o
ckF[~ ã @ s0 d dl mZ d dlZd dlZG dd„ deƒZdS )é )Ú InstallerNc @ s( e Zd ZdZdd„ Zdd„ Zdd„ ZdS ) ÚTraca6
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 dddd | j dddd | d¡ | d¡ | d¡ | d¡ | d ¡ | d
¡ d S )Nzapt-get -y install tracT)ÚnotifyÚ
exit_on_errorz!apt-get -y install libapache2-svnza2enmod sslza2enmod mod_pythonza2enmod dav_svnza2enmod rewriteztouch /var/log/boto.logzchmod a+w /var/log/boto.log)Úrun©Úself© r úC/usr/lib/python3/dist-packages/boto/pyami/installers/ubuntu/trac.pyÚinstall0 s
zTrac.installc
C sR t j dd¡ ¡ }|r§| d¡}td|d dƒ}| d¡ t j dd¡r\| d ¡ | d
¡ | dt j dd¡ ¡ ¡ | d
| ¡ | d¡ | d| ¡ | d¡ | d¡ n| d
¡ | dt j dd¡ ¡ ¡ | d
| ¡ | dt j dd¡ ¡ ¡ | dt j dd¡ ¡ ¡ | d¡ | d¡ | d¡ | d¡ | d¡ | d¡ | d¡ | dt j dd¡ ¡ | d¡ | d¡ | d ¡ t j dd!¡}t |¡D ]4}|d dkr| d"| ¡ | d#¡ | d$¡ | d%¡ | d&||f ¡ | d'| ¡ | d ¡ qÜt j dd(¡}t |¡D ]$}|d dkr@| d)| ¡ | d*¡ | d+||f ¡ | d ¡ q| d,¡ | d-¡ | d.¡ | d/¡ t j dd¡}|rl| d0¡ | d1| ¡ t j dd2¡}|r}| d3| ¡ t j dd4¡} | rŽ| d5| ¡ | d6¡ | ¡ |
d7|d ¡ |
d8¡ d S d S )9Nr ÚhostnameÚ.z/etc/apache2/sites-available/%sr ÚwzNameVirtualHost *:80
ÚSSLCertificateFilezNameVirtualHost *:443
z
z ServerAdmin %s
Úserver_adminz ServerName %s
z RewriteEngine On
z! RewriteRule ^(.*)$ https://%s$1
z
z
z DocumentRoot %s
Úhomez
z, Options FollowSymLinks Indexes MultiViews
z AllowOverride All
z Order allow,deny
z allow from all
z
z
z AuthType Basic
z AuthName "%s"
Únamez Require valid-user
z, AuthUserFile /mnt/apache/passwd/passwords
z
Údata_dirz
z SetHandler mod_python
z% PythonInterpreter main_interpreter
z, PythonHandler trac.web.modpython_frontend
z PythonOption TracEnv %s/%s
z$ PythonOption TracUriRoot /trac/%s
Úsvn_dirz
z
DAV svn
z SVNPath %s/%s
z% ErrorLog /var/log/apache2/error.log
z LogLevel warn
z0 CustomLog /var/log/apache2/access.log combined
z ServerSignature On
z SSLEngine On
z SSLCertificateFile %s
ÚSSLCertificateKeyFilez SSLCertificateKeyFile %s
ÚSSLCertificateChainFilez SSLCertificateChainFile %s
z
za2ensite %sz /etc/init.d/apache2 force-reload)ÚbotoÚconfigÚgetÚstripÚsplitÚopenÚwriteÚosÚlistdirÚcloser )
r ÚdomainÚdomain_infoÚcnfr Úenvr r r r r r r
Úsetup_vhost<