| Index: modules/rietveld/manifests/init.pp | 
| =================================================================== | 
| new file mode 100644 | 
| --- /dev/null | 
| +++ b/modules/rietveld/manifests/init.pp | 
| @@ -0,0 +1,80 @@ | 
| +class rietveld($domain) inherits private::rietveld { | 
| + | 
| +  include nginx | 
| +  $django_home = '/home/rietveld/django-gae2django' | 
| +  $rietveld_home = "${django_home}/examples/rietveld" | 
| + | 
| +  Exec { | 
| +    path => '/usr/bin:/usr/sbin:/bin:/usr/local/bin', | 
| +  } | 
| + | 
| +  nginx::hostconfig {$domain: | 
| +    content => template('rietveld/site.erb'), | 
| +    enabled => true | 
| +  } | 
| + | 
| +  package {['python-django', 'make', 'patch', 'gunicorn']: ensure => present} | 
| + | 
| +  user {'rietveld': | 
| +    ensure => present, | 
| +    comment => 'User of the rietveld installation', | 
| +    home => '/home/rietveld', | 
| +    managehome => true | 
| +  } | 
| + | 
| +  exec {'get_rietveld': | 
| +    command => "hg clone https://code.google.com/p/django-gae2django/ ${django_home}/", | 
| +    require => Package['mercurial'], | 
| +    user => rietveld, | 
| +    onlyif => "test ! -d ${django_home}", | 
| +  } | 
| + | 
| +  file {"${rietveld_home}/Makefile": | 
| +    ensure => file, | 
| +    owner => rietveld, | 
| +    require => Exec['get_rietveld'], | 
| +    source => 'puppet:///modules/rietveld/Makefile', | 
| +  } | 
| + | 
| +  file {"${rietveld_home}/settings.py": | 
| +    ensure => file, | 
| +    owner => rietveld, | 
| +    require => Exec['get_rietveld'], | 
| +    content => template('rietveld/settings.py.erb'), | 
| +  } | 
| + | 
| +  exec {'install_rietveld': | 
| +    command => "make all", | 
| +    cwd => "${rietveld_home}", | 
| +    user => rietveld, | 
| +    require => [ | 
| +      File["${rietveld_home}/Makefile"], | 
| +      File["${rietveld_home}/settings.py"]], | 
| +    onlyif => "test ! -f ${$rietveld_home}/dev.db", | 
| +  } | 
| + | 
| +  file {'/etc/init/rietveld.conf': | 
| +    ensure => file, | 
| +    owner => root, | 
| +    source => 'puppet:///modules/rietveld/rietveld.conf', | 
| +    notify => Service['rietveld'], | 
| +  } | 
| + | 
| +  file {'/etc/init.d/rietveld': | 
| +    ensure => link, | 
| +    target => '/lib/init/upstart-job', | 
| +    require => [File['/etc/init/rietveld.conf'], Exec['install_rietveld']] | 
| +  } | 
| + | 
| +  service {'rietveld': | 
| +    ensure => running, | 
| +    hasstatus => false, | 
| +    require => [Package['gunicorn'], File['/etc/init.d/rietveld']] | 
| +  } | 
| + | 
| +  exec {'set_superuser': | 
| +    command => "echo \"from django.db import DEFAULT_DB_ALIAS as database; from django.contrib.auth.models import User; User.objects.db_manager(database).create_superuser('admin', 'admins@adblockplus.org', '${admin_password}')\" | ./manage.py shell", | 
| +    cwd => "${rietveld_home}", | 
| +    require => Exec['install_rietveld'], | 
| +  } | 
| +} | 
|  |