]> gitweb.fluxo.info Git - puppet-ikiwiki.git/commitdiff
Upgrading for 2.7 compatibility
authorSilvio Rhatto <rhatto@riseup.net>
Sat, 19 Jan 2013 18:05:49 +0000 (16:05 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Sat, 19 Jan 2013 18:05:49 +0000 (16:05 -0200)
manifests/init.pp
manifests/instance.pp [new file with mode: 0644]
templates/deploy.sh.erb
templates/ikiwiki.setup.erb
templates/refresh.sh.erb

index e3972bd3c5d4c862cfcdb1132849b1dbc8849b4f..061ee2eaf2633fe3c8cd89e4027fdb5b899c91b0 100644 (file)
@@ -1,12 +1,10 @@
-class ikiwiki {
+class ikiwiki(
+  $sites_folder = ${apache::sites_folder)
+) {
   package { [ "ikiwiki", "po4a" ]:
     ensure => installed,
   }
 
-  case $apache_sites_folder {
-    '': { fail("you need to define \$apache_sites_folder for ikiwiki module") }
-  }
-
   file { "/usr/local/sbin/ikiwiki-deploy":
     ensure  => present,
     content => template('ikiwiki/deploy.sh.erb'),
@@ -23,85 +21,4 @@ class ikiwiki {
     mode    => 755,
   }
 
-  define instance($base_url = $domain, $ensure = 'present', $description = false,
-                  $adminuser = 'yourname', $adminemail = 'me@example.org', $instance = 'ikiwiki',
-                  $account_creation_password = false, $add_plugins = false, $disable_plugins = false,
-                  $protocol = 'https') {
-
-    $desc = $description ? {
-      false   => $title,
-      default => $description,
-    }
-
-    case $ensure {
-      'present': {
-        file { "/etc/ikiwiki/$name.setup":
-          ensure  => present,
-          content => template('ikiwiki/ikiwiki.setup.erb'),
-          owner   => www-data,
-          group   => www-data,
-          mode    => 640,
-          notify  => Exec["ikiwiki_refresh_${name}"],
-        }
-
-        exec { "ikiwiki_refresh_${name}":
-          command     => "/usr/local/sbin/ikiwiki-refresh $name $instance",
-          user        => root,
-          refreshonly => true,
-        }
-    
-        if !defined(File["${apache_sites_folder}/${name}/${instance}_src"]) {
-          file { "${apache_sites_folder}/${name}/${instance}_src":
-            ensure  => directory,
-            owner   => www-data,
-            group   => www-data,
-            recurse => true,
-            notify  => Exec["ikiwiki_refresh_${name}"],
-            require => File["${apache_sites_folder}/${name}"],
-          }
-        }
-
-        if !defined(File["${apache_sites_folder}/${name}/${instance}"]) {
-          file { "${apache_sites_folder}/${name}/${instance}":
-            ensure  => directory,
-            owner   => www-data,
-            group   => www-data,
-            recurse => true,
-            require => File["${apache_sites_folder}/${name}"],
-          }
-        }
-
-        if !defined(File["${apache_sites_folder}/${name}"]) {
-          file { "${apache_sites_folder}/${name}":
-            ensure  => directory,
-            owner   => root,
-            group   => root,
-          }
-        }
-
-        # The post-update hook should have www-data as owner so
-        # gitolite can do a setuid to it and write to ikiwiki
-        # folders without messing the permission scheme.
-        #
-        # The same is valid for the cgi.
-        #
-        # See http://ikiwiki.info/rcs/git/
-        #     http://ikiwiki.info/forum/multi-user_setup_of_ikiwiki__44___gitolite_and_apache2_in_Debian_Sid/
-        #
-        file { [ "/var/git/repositories/${name}.git/hooks/post-update",
-                 "${apache_sites_folder}/${name}/${instance}/ikiwiki.cgi" ]:
-          ensure  => present,
-          owner   => www-data,
-          group   => gitolite,
-          mode    => 6550,
-          require => File["/etc/ikiwiki/$name.setup"],
-        }
-      }
-      'absent': {
-        file { "/etc/ikiwiki/$name.setup":
-          ensure  => absent,
-        }
-      }
-    }
-  }
 }
diff --git a/manifests/instance.pp b/manifests/instance.pp
new file mode 100644 (file)
index 0000000..3c76365
--- /dev/null
@@ -0,0 +1,81 @@
+define ikiwiki::instance($base_url = $domain, $ensure = 'present', $description = false,
+                $adminuser = 'yourname', $adminemail = 'me@example.org', $instance = 'ikiwiki',
+                $account_creation_password = false, $add_plugins = false, $disable_plugins = false,
+                $protocol = 'https') {
+
+  $desc = $description ? {
+    false   => $title,
+    default => $description,
+  }
+
+  case $ensure {
+    'present': {
+      file { "/etc/ikiwiki/$name.setup":
+        ensure  => present,
+        content => template('ikiwiki/ikiwiki.setup.erb'),
+        owner   => www-data,
+        group   => www-data,
+        mode    => 640,
+        notify  => Exec["ikiwiki_refresh_${name}"],
+      }
+
+      exec { "ikiwiki_refresh_${name}":
+        command     => "/usr/local/sbin/ikiwiki-refresh $name $instance",
+        user        => root,
+        refreshonly => true,
+      }
+  
+      if !defined(File["${ikiwiki::sites_folder}/${name}/${instance}_src"]) {
+        file { "${ikiwiki::sites_folder}/${name}/${instance}_src":
+          ensure  => directory,
+          owner   => www-data,
+          group   => www-data,
+          recurse => true,
+          notify  => Exec["ikiwiki_refresh_${name}"],
+          require => File["${ikiwiki::sites_folder}/${name}"],
+        }
+      }
+
+      if !defined(File["${ikiwiki::sites_folder}/${name}/${instance}"]) {
+        file { "${ikiwiki::sites_folder}/${name}/${instance}":
+          ensure  => directory,
+          owner   => www-data,
+          group   => www-data,
+          recurse => true,
+          require => File["${ikiwiki::sites_folder}/${name}"],
+        }
+      }
+
+      if !defined(File["${ikiwiki::sites_folder}/${name}"]) {
+        file { "${ikiwiki::sites_folder}/${name}":
+          ensure  => directory,
+          owner   => root,
+          group   => root,
+        }
+      }
+
+      # The post-update hook should have www-data as owner so
+      # gitolite can do a setuid to it and write to ikiwiki
+      # folders without messing the permission scheme.
+      #
+      # The same is valid for the cgi.
+      #
+      # See http://ikiwiki.info/rcs/git/
+      #     http://ikiwiki.info/forum/multi-user_setup_of_ikiwiki__44___gitolite_and_apache2_in_Debian_Sid/
+      #
+      file { [ "/var/git/repositories/${name}.git/hooks/post-update",
+               "${ikiwiki::sites_folder}/${name}/${instance}/ikiwiki.cgi" ]:
+        ensure  => present,
+        owner   => www-data,
+        group   => gitolite,
+        mode    => 6550,
+        require => File["/etc/ikiwiki/$name.setup"],
+      }
+    }
+    'absent': {
+      file { "/etc/ikiwiki/$name.setup":
+        ensure  => absent,
+      }
+    }
+  }
+}
index e5bfa92a09f86953b26ed925c09e3366f5b62f87..4bbfb43bd68f2d102430f77786cc68392f408387 100644 (file)
@@ -2,7 +2,7 @@
 
 NAME="$1"
 INSTANCE="$2"
-BASE="<%= apache_sites_folder %>"
+BASE="<%= scope.lookupvar('ikiwiki::sites_folder') %>"
 SITE=$BASE/$NAME
 CONF="/etc/ikiwiki"
 WEB_OWNER="www-data"
index 56d5ad2c46bbbe3fb4353db051e43150e02192f8..1c9098802c3fda8aeb5ee0daedaeb8ff3b6c540a 100644 (file)
@@ -11,8 +11,8 @@ use IkiWiki::Setup::Standard {
   adminemail => '<%= adminemail %>',
 
        # Be sure to customise these..
-  srcdir => "<%= apache_sites_folder %>/<%= name %>/ikiwiki_src",
-       destdir => "<%= apache_sites_folder %>/<%= name %>/ikiwiki",
+  srcdir => "<%= scope.lookupvar('ikiwiki::sites_folder') %>/<%= name %>/ikiwiki_src",
+       destdir => "<%= scope.lookupvar('ikiwiki::sites_folder') %>/<%= name %>/ikiwiki",
 
   url => "<%= protocol %>://<%= name %>.<%= base_url %>",
   cgiurl => "<%= protocol %>://<%= name %>.<%= base_url %>/ikiwiki.cgi",
@@ -63,7 +63,7 @@ use IkiWiki::Setup::Standard {
                {
                        # The cgi wrapper.
                        cgi => 1,
-                       wrapper => "<%= apache_sites_folder %>/<%= name %>/ikiwiki/ikiwiki.cgi",
+                       wrapper => "<%= scope.lookupvar('ikiwiki::sites_folder') %>/<%= name %>/ikiwiki/ikiwiki.cgi",
                        wrappermode => "06550",
       wrappergroup => "gitosis",
                },
index 6680f23050ef13f198c2c9adfda8042c3575ac42..0b2b796c4c68e5685cbe76e4eccabb4404d02b4d 100644 (file)
@@ -2,7 +2,7 @@
 
 NAME="$1"
 INSTANCE="$2"
-BASE="<%= apache_sites_folder %>"
+BASE="<%= scope.lookupvar('ikiwiki::sites_folder') %>"
 SITE=$BASE/$NAME
 CONF="/etc/ikiwiki"
 WEB_OWNER="www-data"