o ckF[~@s0ddlmZddlZddlZGdddeZdS)) InstallerNc@s(eZdZdZddZddZddZdS) 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 cCs`|jdddd|jdddd|d|d|d|d|d |d dS) Nzapt-get -y install tracT)notify exit_on_errorz!apt-get -y install libapache2-svnz a2enmod sslza2enmod mod_pythonza2enmod dav_svnza2enmod rewriteztouch /var/log/boto.logzchmod a+w /var/log/boto.log)runselfr C/usr/lib/python3/dist-packages/boto/pyami/installers/ubuntu/trac.pyinstall0s     z Trac.installc CsRtjdd}|r|d}td|dd}|dtjddr\|d |d |d tjdd |d ||d|d||d|dn|d |d tjdd |d ||dtjdd|dtjdd|d|d|d|d|d|d|d|dtjdd|d|d|d tjdd!}t|D]4}|ddkr|d"||d#|d$|d%|d&||f|d'||d qtjdd(}t|D]$}|ddkr@|d)||d*|d+||f|d q|d,|d-|d.|d/tjdd}|rl|d0|d1|tjdd2}|r}|d3|tjdd4} | r|d5| |d6| | d7|d| d8dSdS)9Nrhostname.z/etc/apache2/sites-available/%srwzNameVirtualHost *: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 z a2ensite %sz /etc/init.d/apache2 force-reload) botoconfiggetstripsplitopenwriteoslistdircloser) rdomain domain_infocnfrenvrrrrr r r setup_vhost<s                              zTrac.setup_vhostcCs||dS)N)r r%rr r r mains z Trac.mainN)__name__ __module__ __qualname____doc__r r%r&r r r r rs  Mr)&boto.pyami.installers.ubuntu.installerrrrrr r r r s