aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaz <me@saz.sh>2011-11-07 18:36:31 +0100
committerSaz <me@saz.sh>2011-11-07 18:36:31 +0100
commit7c77a722a783adfb80e640392018e0fe5dd987d8 (patch)
treec10dde4f0c6468a87dd1174edf9aa7dd8624aad0
downloadpuppet-pureftpd-7c77a722a783adfb80e640392018e0fe5dd987d8.tar.gz
puppet-pureftpd-7c77a722a783adfb80e640392018e0fe5dd987d8.tar.bz2
initial release
-rw-r--r--Modulefile8
-rw-r--r--README3
-rw-r--r--files/README.markdown22
-rw-r--r--files/debian/AltLog1
-rw-r--r--files/debian/ChrootEveryone1
-rw-r--r--files/debian/DontResolve1
-rw-r--r--files/debian/MaxClientsNumber1
-rw-r--r--files/debian/MinUID1
-rw-r--r--files/debian/NoAnonymous1
-rw-r--r--files/debian/PAMAuthentication1
-rw-r--r--files/debian/PureDB1
-rw-r--r--files/debian/UnixAuthentication1
-rw-r--r--files/debian/VerboseLog1
-rw-r--r--manifests/config.pp23
-rw-r--r--manifests/init.pp16
-rw-r--r--manifests/install.pp5
-rw-r--r--manifests/params.pp22
-rw-r--r--manifests/service.pp9
-rw-r--r--metadata.json12
-rw-r--r--pkg/saz-pureftpd-0.0.1.tar.gzbin0 -> 4147 bytes
-rw-r--r--pkg/saz-pureftpd-0.0.1/Modulefile8
-rw-r--r--pkg/saz-pureftpd-0.0.1/README3
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/README.markdown22
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/AltLog1
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/ChrootEveryone1
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/DontResolve1
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/MaxClientsNumber1
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/MinUID1
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/NoAnonymous1
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/PAMAuthentication1
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/PureDB1
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/UnixAuthentication1
-rw-r--r--pkg/saz-pureftpd-0.0.1/files/debian/VerboseLog1
-rw-r--r--pkg/saz-pureftpd-0.0.1/manifests/config.pp23
-rw-r--r--pkg/saz-pureftpd-0.0.1/manifests/init.pp16
-rw-r--r--pkg/saz-pureftpd-0.0.1/manifests/install.pp5
-rw-r--r--pkg/saz-pureftpd-0.0.1/manifests/params.pp22
-rw-r--r--pkg/saz-pureftpd-0.0.1/manifests/service.pp9
-rw-r--r--pkg/saz-pureftpd-0.0.1/metadata.json45
-rw-r--r--pkg/saz-pureftpd-0.0.1/spec/README.markdown7
-rw-r--r--pkg/saz-pureftpd-0.0.1/spec/spec.opts6
-rw-r--r--pkg/saz-pureftpd-0.0.1/spec/spec_helper.rb18
-rw-r--r--pkg/saz-pureftpd-0.0.1/spec/unit/puppet/provider/README.markdown4
-rw-r--r--pkg/saz-pureftpd-0.0.1/spec/unit/puppet/type/README.markdown4
-rw-r--r--pkg/saz-pureftpd-0.0.1/templates/README.markdown23
-rw-r--r--pkg/saz-pureftpd-0.0.1/templates/default_config.erb26
-rw-r--r--pkg/saz-pureftpd-0.0.1/tests/init.pp1
-rw-r--r--pkg/saz-pureftpd-1.0.0.tar.gzbin0 -> 4147 bytes
-rw-r--r--pkg/saz-pureftpd-1.0.0/Modulefile8
-rw-r--r--pkg/saz-pureftpd-1.0.0/README3
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/README.markdown22
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/AltLog1
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/ChrootEveryone1
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/DontResolve1
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/MaxClientsNumber1
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/MinUID1
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/NoAnonymous1
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/PAMAuthentication1
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/PureDB1
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/UnixAuthentication1
-rw-r--r--pkg/saz-pureftpd-1.0.0/files/debian/VerboseLog1
-rw-r--r--pkg/saz-pureftpd-1.0.0/manifests/config.pp23
-rw-r--r--pkg/saz-pureftpd-1.0.0/manifests/init.pp16
-rw-r--r--pkg/saz-pureftpd-1.0.0/manifests/install.pp5
-rw-r--r--pkg/saz-pureftpd-1.0.0/manifests/params.pp22
-rw-r--r--pkg/saz-pureftpd-1.0.0/manifests/service.pp9
-rw-r--r--pkg/saz-pureftpd-1.0.0/metadata.json45
-rw-r--r--pkg/saz-pureftpd-1.0.0/spec/README.markdown7
-rw-r--r--pkg/saz-pureftpd-1.0.0/spec/spec.opts6
-rw-r--r--pkg/saz-pureftpd-1.0.0/spec/spec_helper.rb18
-rw-r--r--pkg/saz-pureftpd-1.0.0/spec/unit/puppet/provider/README.markdown4
-rw-r--r--pkg/saz-pureftpd-1.0.0/spec/unit/puppet/type/README.markdown4
-rw-r--r--pkg/saz-pureftpd-1.0.0/templates/README.markdown23
-rw-r--r--pkg/saz-pureftpd-1.0.0/templates/default_config.erb26
-rw-r--r--pkg/saz-pureftpd-1.0.0/tests/init.pp1
-rw-r--r--spec/README.markdown7
-rw-r--r--spec/spec.opts6
-rw-r--r--spec/spec_helper.rb18
-rw-r--r--spec/unit/puppet/provider/README.markdown4
-rw-r--r--spec/unit/puppet/type/README.markdown4
-rw-r--r--templates/README.markdown23
-rw-r--r--templates/default_config.erb26
-rw-r--r--tests/init.pp1
83 files changed, 723 insertions, 0 deletions
diff --git a/Modulefile b/Modulefile
new file mode 100644
index 0000000..c8c1a65
--- /dev/null
+++ b/Modulefile
@@ -0,0 +1,8 @@
+name 'saz-pureftpd'
+version '1.0.0'
+source 'UNKNOWN'
+author 'saz'
+license 'UNKNOWN'
+summary 'UNKNOWN'
+description 'Module for configuring pure-ftpd via puppet'
+project_page 'https://github.com/saz/puppet-pureftpd'
diff --git a/README b/README
new file mode 100644
index 0000000..231fdac
--- /dev/null
+++ b/README
@@ -0,0 +1,3 @@
+pureftpd
+
+This is the pureftpd module.
diff --git a/files/README.markdown b/files/README.markdown
new file mode 100644
index 0000000..be52188
--- /dev/null
+++ b/files/README.markdown
@@ -0,0 +1,22 @@
+Files
+=====
+
+Puppet comes with both a client and server for copying files around. The file
+serving function is provided as part of the central Puppet daemon,
+puppetmasterd, and the client function is used through the source attribute of
+file objects. Learn more at
+http://projects.puppetlabs.com/projects/puppet/wiki/File_Serving_Configuration
+
+You can use managed files like this:
+
+ class myclass {
+ package { mypackage: ensure => latest }
+ service { myservice: ensure => running }
+ file { "/etc/myfile":
+ source => "puppet://$servername/modules/mymodule/myfile"
+ }
+ }
+
+The files are searched for in:
+
+ $modulepath/mymodule/files/myfile
diff --git a/files/debian/AltLog b/files/debian/AltLog
new file mode 100644
index 0000000..e7d518d
--- /dev/null
+++ b/files/debian/AltLog
@@ -0,0 +1 @@
+#clf:/var/log/pure-ftpd/transfer.log
diff --git a/files/debian/ChrootEveryone b/files/debian/ChrootEveryone
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/files/debian/ChrootEveryone
@@ -0,0 +1 @@
+yes
diff --git a/files/debian/DontResolve b/files/debian/DontResolve
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/files/debian/DontResolve
@@ -0,0 +1 @@
+yes
diff --git a/files/debian/MaxClientsNumber b/files/debian/MaxClientsNumber
new file mode 100644
index 0000000..7273c0f
--- /dev/null
+++ b/files/debian/MaxClientsNumber
@@ -0,0 +1 @@
+25
diff --git a/files/debian/MinUID b/files/debian/MinUID
new file mode 100644
index 0000000..bb95160
--- /dev/null
+++ b/files/debian/MinUID
@@ -0,0 +1 @@
+33
diff --git a/files/debian/NoAnonymous b/files/debian/NoAnonymous
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/files/debian/NoAnonymous
@@ -0,0 +1 @@
+yes
diff --git a/files/debian/PAMAuthentication b/files/debian/PAMAuthentication
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/files/debian/PAMAuthentication
@@ -0,0 +1 @@
+yes
diff --git a/files/debian/PureDB b/files/debian/PureDB
new file mode 100644
index 0000000..ee48061
--- /dev/null
+++ b/files/debian/PureDB
@@ -0,0 +1 @@
+/etc/pure-ftpd/pureftpd.pdb
diff --git a/files/debian/UnixAuthentication b/files/debian/UnixAuthentication
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/files/debian/UnixAuthentication
@@ -0,0 +1 @@
+yes
diff --git a/files/debian/VerboseLog b/files/debian/VerboseLog
new file mode 100644
index 0000000..54299a4
--- /dev/null
+++ b/files/debian/VerboseLog
@@ -0,0 +1 @@
+no \ No newline at end of file
diff --git a/manifests/config.pp b/manifests/config.pp
new file mode 100644
index 0000000..71e6bd8
--- /dev/null
+++ b/manifests/config.pp
@@ -0,0 +1,23 @@
+class pureftpd::config {
+ file { "${pureftpd::params::config_dir}conf":
+ ensure => directory,
+ recurse => true,
+ purge => true,
+ force => true,
+ owner => root,
+ group => root,
+ source => $source ? {
+ undef => "puppet:///modules/${module_name}/${pureftpd::params::config_source}",
+ default => $pureftpd::config_source,
+ },
+ require => Class['pureftpd::install'],
+ }
+
+ file { $pureftpd::params::config_default_file:
+ ensure => present,
+ owner => root,
+ group => root,
+ content => template("${module_name}/default_config.erb"),
+ require => Class['pureftpd::install'],
+ }
+}
diff --git a/manifests/init.pp b/manifests/init.pp
new file mode 100644
index 0000000..6590f4b
--- /dev/null
+++ b/manifests/init.pp
@@ -0,0 +1,16 @@
+# Class: pureftpd
+#
+# This module manages pureftpd
+#
+# Parameters:
+#
+# Actions:
+#
+# Requires:
+#
+# Sample Usage:
+#
+# [Remember: No empty lines between comments and class definition]
+class pureftpd ($auth_type = undef, $config_source = undef, $virtualchroot = false) {
+ include pureftpd::params, pureftpd::install, pureftpd::config, pureftpd::service
+}
diff --git a/manifests/install.pp b/manifests/install.pp
new file mode 100644
index 0000000..8bf9a98
--- /dev/null
+++ b/manifests/install.pp
@@ -0,0 +1,5 @@
+class pureftpd::install {
+ package { $pureftpd::params::package_name:
+ ensure => present,
+ }
+}
diff --git a/manifests/params.pp b/manifests/params.pp
new file mode 100644
index 0000000..911da7e
--- /dev/null
+++ b/manifests/params.pp
@@ -0,0 +1,22 @@
+class pureftpd::params {
+ case $operatingsystem {
+ /(Ubuntu|Debian)/: {
+ case $auth_type {
+ 'mysql': { $real_auth_type = '-mysql' }
+ 'ldap': { $real_auth_type = '-ldap' }
+ 'postgresql': { $real_auth_type = '-postgresql' }
+ default: { $real_auth_type = '' }
+ }
+ $package_name = "pure-ftpd${real_auth_type}"
+ $config_dir = '/etc/pure-ftpd/'
+ $service_name = "pure-ftpd${real_auth_type}"
+ $config_default_file = '/etc/default/pure-ftpd-common'
+ $config_source = 'debian'
+ }
+ }
+
+ case $pureftpd::virtualchroot {
+ true: { $real_virtualchroot = true }
+ default: { $real_virtualchroot = false }
+ }
+}
diff --git a/manifests/service.pp b/manifests/service.pp
new file mode 100644
index 0000000..039ca4f
--- /dev/null
+++ b/manifests/service.pp
@@ -0,0 +1,9 @@
+class pureftpd::service {
+ service { $pureftpd::params::service_name:
+ ensure => running,
+ enable => true,
+ hasrestart => true,
+ hasstatus => false,
+ require => Class['pureftpd::config'],
+ }
+}
diff --git a/metadata.json b/metadata.json
new file mode 100644
index 0000000..8ce7797
--- /dev/null
+++ b/metadata.json
@@ -0,0 +1,12 @@
+/*
++-----------------------------------------------------------------------+
+| |
+| ==> DO NOT EDIT THIS FILE! <== |
+| |
+| You should edit the `Modulefile` and run `puppet-module build` |
+| to generate the `metadata.json` file for your releases. |
+| |
++-----------------------------------------------------------------------+
+*/
+
+{}
diff --git a/pkg/saz-pureftpd-0.0.1.tar.gz b/pkg/saz-pureftpd-0.0.1.tar.gz
new file mode 100644
index 0000000..91a5fd0
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1.tar.gz
Binary files differ
diff --git a/pkg/saz-pureftpd-0.0.1/Modulefile b/pkg/saz-pureftpd-0.0.1/Modulefile
new file mode 100644
index 0000000..5efad63
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/Modulefile
@@ -0,0 +1,8 @@
+name 'saz-pureftpd'
+version '0.0.1'
+source 'UNKNOWN'
+author 'saz'
+license 'UNKNOWN'
+summary 'UNKNOWN'
+description 'Module for configuring pure-ftpd via puppet'
+project_page 'https://github.com/saz/puppet-pureftpd'
diff --git a/pkg/saz-pureftpd-0.0.1/README b/pkg/saz-pureftpd-0.0.1/README
new file mode 100644
index 0000000..231fdac
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/README
@@ -0,0 +1,3 @@
+pureftpd
+
+This is the pureftpd module.
diff --git a/pkg/saz-pureftpd-0.0.1/files/README.markdown b/pkg/saz-pureftpd-0.0.1/files/README.markdown
new file mode 100644
index 0000000..be52188
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/README.markdown
@@ -0,0 +1,22 @@
+Files
+=====
+
+Puppet comes with both a client and server for copying files around. The file
+serving function is provided as part of the central Puppet daemon,
+puppetmasterd, and the client function is used through the source attribute of
+file objects. Learn more at
+http://projects.puppetlabs.com/projects/puppet/wiki/File_Serving_Configuration
+
+You can use managed files like this:
+
+ class myclass {
+ package { mypackage: ensure => latest }
+ service { myservice: ensure => running }
+ file { "/etc/myfile":
+ source => "puppet://$servername/modules/mymodule/myfile"
+ }
+ }
+
+The files are searched for in:
+
+ $modulepath/mymodule/files/myfile
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/AltLog b/pkg/saz-pureftpd-0.0.1/files/debian/AltLog
new file mode 100644
index 0000000..e7d518d
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/AltLog
@@ -0,0 +1 @@
+#clf:/var/log/pure-ftpd/transfer.log
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/ChrootEveryone b/pkg/saz-pureftpd-0.0.1/files/debian/ChrootEveryone
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/ChrootEveryone
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/DontResolve b/pkg/saz-pureftpd-0.0.1/files/debian/DontResolve
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/DontResolve
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/MaxClientsNumber b/pkg/saz-pureftpd-0.0.1/files/debian/MaxClientsNumber
new file mode 100644
index 0000000..7273c0f
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/MaxClientsNumber
@@ -0,0 +1 @@
+25
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/MinUID b/pkg/saz-pureftpd-0.0.1/files/debian/MinUID
new file mode 100644
index 0000000..bb95160
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/MinUID
@@ -0,0 +1 @@
+33
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/NoAnonymous b/pkg/saz-pureftpd-0.0.1/files/debian/NoAnonymous
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/NoAnonymous
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/PAMAuthentication b/pkg/saz-pureftpd-0.0.1/files/debian/PAMAuthentication
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/PAMAuthentication
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/PureDB b/pkg/saz-pureftpd-0.0.1/files/debian/PureDB
new file mode 100644
index 0000000..ee48061
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/PureDB
@@ -0,0 +1 @@
+/etc/pure-ftpd/pureftpd.pdb
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/UnixAuthentication b/pkg/saz-pureftpd-0.0.1/files/debian/UnixAuthentication
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/UnixAuthentication
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-0.0.1/files/debian/VerboseLog b/pkg/saz-pureftpd-0.0.1/files/debian/VerboseLog
new file mode 100644
index 0000000..54299a4
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/files/debian/VerboseLog
@@ -0,0 +1 @@
+no \ No newline at end of file
diff --git a/pkg/saz-pureftpd-0.0.1/manifests/config.pp b/pkg/saz-pureftpd-0.0.1/manifests/config.pp
new file mode 100644
index 0000000..71e6bd8
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/manifests/config.pp
@@ -0,0 +1,23 @@
+class pureftpd::config {
+ file { "${pureftpd::params::config_dir}conf":
+ ensure => directory,
+ recurse => true,
+ purge => true,
+ force => true,
+ owner => root,
+ group => root,
+ source => $source ? {
+ undef => "puppet:///modules/${module_name}/${pureftpd::params::config_source}",
+ default => $pureftpd::config_source,
+ },
+ require => Class['pureftpd::install'],
+ }
+
+ file { $pureftpd::params::config_default_file:
+ ensure => present,
+ owner => root,
+ group => root,
+ content => template("${module_name}/default_config.erb"),
+ require => Class['pureftpd::install'],
+ }
+}
diff --git a/pkg/saz-pureftpd-0.0.1/manifests/init.pp b/pkg/saz-pureftpd-0.0.1/manifests/init.pp
new file mode 100644
index 0000000..6590f4b
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/manifests/init.pp
@@ -0,0 +1,16 @@
+# Class: pureftpd
+#
+# This module manages pureftpd
+#
+# Parameters:
+#
+# Actions:
+#
+# Requires:
+#
+# Sample Usage:
+#
+# [Remember: No empty lines between comments and class definition]
+class pureftpd ($auth_type = undef, $config_source = undef, $virtualchroot = false) {
+ include pureftpd::params, pureftpd::install, pureftpd::config, pureftpd::service
+}
diff --git a/pkg/saz-pureftpd-0.0.1/manifests/install.pp b/pkg/saz-pureftpd-0.0.1/manifests/install.pp
new file mode 100644
index 0000000..8bf9a98
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/manifests/install.pp
@@ -0,0 +1,5 @@
+class pureftpd::install {
+ package { $pureftpd::params::package_name:
+ ensure => present,
+ }
+}
diff --git a/pkg/saz-pureftpd-0.0.1/manifests/params.pp b/pkg/saz-pureftpd-0.0.1/manifests/params.pp
new file mode 100644
index 0000000..911da7e
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/manifests/params.pp
@@ -0,0 +1,22 @@
+class pureftpd::params {
+ case $operatingsystem {
+ /(Ubuntu|Debian)/: {
+ case $auth_type {
+ 'mysql': { $real_auth_type = '-mysql' }
+ 'ldap': { $real_auth_type = '-ldap' }
+ 'postgresql': { $real_auth_type = '-postgresql' }
+ default: { $real_auth_type = '' }
+ }
+ $package_name = "pure-ftpd${real_auth_type}"
+ $config_dir = '/etc/pure-ftpd/'
+ $service_name = "pure-ftpd${real_auth_type}"
+ $config_default_file = '/etc/default/pure-ftpd-common'
+ $config_source = 'debian'
+ }
+ }
+
+ case $pureftpd::virtualchroot {
+ true: { $real_virtualchroot = true }
+ default: { $real_virtualchroot = false }
+ }
+}
diff --git a/pkg/saz-pureftpd-0.0.1/manifests/service.pp b/pkg/saz-pureftpd-0.0.1/manifests/service.pp
new file mode 100644
index 0000000..039ca4f
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/manifests/service.pp
@@ -0,0 +1,9 @@
+class pureftpd::service {
+ service { $pureftpd::params::service_name:
+ ensure => running,
+ enable => true,
+ hasrestart => true,
+ hasstatus => false,
+ require => Class['pureftpd::config'],
+ }
+}
diff --git a/pkg/saz-pureftpd-0.0.1/metadata.json b/pkg/saz-pureftpd-0.0.1/metadata.json
new file mode 100644
index 0000000..0707e20
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/metadata.json
@@ -0,0 +1,45 @@
+{
+ "summary": "UNKNOWN",
+ "project_page": "https://github.com/saz/puppet-pureftpd",
+ "author": "saz",
+ "source": "UNKNOWN",
+ "dependencies": [
+
+ ],
+ "checksums": {
+ "manifests/params.pp": "e7b3cf3a6115e96a6f76d3ff2c545625",
+ "files/debian/AltLog": "a3d7f89dc916062234237acf75bde97d",
+ "files/debian/MinUID": "4fbafd6948b6529caa2b78e476359875",
+ "spec/spec_helper.rb": "ca19ec4f451ebc7fdb035b52eae6e909",
+ "files/debian/NoAnonymous": "eb4585ad9fe0426781ed7c49252f8225",
+ "spec/unit/puppet/provider/README.markdown": "e52668944ee6af2fb5d5b9e798342645",
+ "files/README.markdown": "3d44458cc68d8513b51e3b56c604eec4",
+ "files/debian/DontResolve": "eb4585ad9fe0426781ed7c49252f8225",
+ "files/debian/PureDB": "6db5965698527e1f140dfc73ed40d47c",
+ "files/debian/UnixAuthentication": "eb4585ad9fe0426781ed7c49252f8225",
+ "manifests/config.pp": "9a67980c30c5d3c0c0fd9ecfb81627a8",
+ "README": "34cdc51f71f626da2194b0bbf2e6a6e6",
+ "manifests/service.pp": "722d62651e6c61da4330332b6382f5a9",
+ "templates/README.markdown": "aada0a1952329e46b98695349dba6203",
+ "templates/default_config.erb": "222945189c5b8d4efa9fe2c3cc01f435",
+ "tests/init.pp": "5d6e84bd06e23c4d565782db67e333ec",
+ "files/debian/PAMAuthentication": "eb4585ad9fe0426781ed7c49252f8225",
+ "spec/README.markdown": "32a1fc0121c28aff554ef5d422b8b51e",
+ "manifests/install.pp": "51caa25f90a479cd501824362b9bdba1",
+ "files/debian/VerboseLog": "7fa3b767c460b54a2be4d49030b349c7",
+ "files/debian/MaxClientsNumber": "2a52a5e65fc3c43f409550dfad1f904f",
+ "metadata.json": "d34d0b70aba36510fbc2df4e667479ef",
+ "files/debian/ChrootEveryone": "eb4585ad9fe0426781ed7c49252f8225",
+ "spec/spec.opts": "a600ded995d948e393fbe2320ba8e51c",
+ "Modulefile": "001e56189832cdc6d7856a6baecd2443",
+ "manifests/init.pp": "61675a905c40641e70d6f74985fda8c8",
+ "spec/unit/puppet/type/README.markdown": "de26a7643813abd6c2e7e28071b1ef94"
+ },
+ "license": "UNKNOWN",
+ "types": [
+
+ ],
+ "version": "0.0.1",
+ "name": "saz-pureftpd",
+ "description": "Module for configuring pure-ftpd via puppet"
+} \ No newline at end of file
diff --git a/pkg/saz-pureftpd-0.0.1/spec/README.markdown b/pkg/saz-pureftpd-0.0.1/spec/README.markdown
new file mode 100644
index 0000000..286d341
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/spec/README.markdown
@@ -0,0 +1,7 @@
+Specs
+=====
+
+The Puppet project uses RSpec for testing.
+
+For more information on RSpec, see http://rspec.info/
+
diff --git a/pkg/saz-pureftpd-0.0.1/spec/spec.opts b/pkg/saz-pureftpd-0.0.1/spec/spec.opts
new file mode 100644
index 0000000..91cd642
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/spec/spec.opts
@@ -0,0 +1,6 @@
+--format
+s
+--colour
+--loadby
+mtime
+--backtrace
diff --git a/pkg/saz-pureftpd-0.0.1/spec/spec_helper.rb b/pkg/saz-pureftpd-0.0.1/spec/spec_helper.rb
new file mode 100644
index 0000000..a4aeeae
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/spec/spec_helper.rb
@@ -0,0 +1,18 @@
+require 'pathname'
+dir = Pathname.new(__FILE__).parent
+$LOAD_PATH.unshift(dir, dir + 'lib', dir + '../lib')
+
+require 'mocha'
+require 'puppet'
+gem 'rspec', '=1.2.9'
+require 'spec/autorun'
+
+Spec::Runner.configure do |config|
+ config.mock_with :mocha
+end
+
+# We need this because the RAL uses 'should' as a method. This
+# allows us the same behaviour but with a different method name.
+class Object
+ alias :must :should
+end
diff --git a/pkg/saz-pureftpd-0.0.1/spec/unit/puppet/provider/README.markdown b/pkg/saz-pureftpd-0.0.1/spec/unit/puppet/provider/README.markdown
new file mode 100644
index 0000000..7025850
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/spec/unit/puppet/provider/README.markdown
@@ -0,0 +1,4 @@
+Provider Specs
+==============
+
+Define specs for your providers under this directory.
diff --git a/pkg/saz-pureftpd-0.0.1/spec/unit/puppet/type/README.markdown b/pkg/saz-pureftpd-0.0.1/spec/unit/puppet/type/README.markdown
new file mode 100644
index 0000000..1ee19ac
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/spec/unit/puppet/type/README.markdown
@@ -0,0 +1,4 @@
+Resource Type Specs
+===================
+
+Define specs for your resource types in this directory.
diff --git a/pkg/saz-pureftpd-0.0.1/templates/README.markdown b/pkg/saz-pureftpd-0.0.1/templates/README.markdown
new file mode 100644
index 0000000..575bbea
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/templates/README.markdown
@@ -0,0 +1,23 @@
+Templates
+=========
+
+Puppet supports templates and templating via ERB, which is part of the Ruby
+standard library and is used for many other projects including Ruby on Rails.
+Templates allow you to manage the content of template files, for example
+configuration files that cannot yet be managed as a Puppet type. Learn more at
+http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Templating
+
+You can use templates like this:
+
+ class myclass {
+ package { mypackage: ensure => latest }
+ service { myservice: ensure => running }
+ file { "/etc/myfile":
+ content => template("mymodule/myfile.erb")
+ }
+ }
+
+The templates are searched for in:
+
+ $templatedir/mymodule/myfile.erb
+ $modulepath/mymodule/templates/myfile.erb
diff --git a/pkg/saz-pureftpd-0.0.1/templates/default_config.erb b/pkg/saz-pureftpd-0.0.1/templates/default_config.erb
new file mode 100644
index 0000000..49b53eb
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/templates/default_config.erb
@@ -0,0 +1,26 @@
+# Configuration for pure-ftpd
+# (this file is sourced by /bin/sh, edit accordingly)
+
+# STANDALONE_OR_INETD
+# valid values are "standalone" and "inetd".
+# Any change here overrides the setting in debconf.
+STANDALONE_OR_INETD=standalone
+
+# VIRTUALCHROOT:
+# whether to use binary with virtualchroot support
+# valid values are "true" or "false"
+# Any change here overrides the setting in debconf.
+VIRTUALCHROOT=<%= scope.lookupvar('pureftpd::params::real_virtualchroot') %>
+
+# UPLOADSCRIPT: if this is set and the daemon is run in standalone mode,
+# pure-uploadscript will also be run to spawn the program given below
+# for handling uploads. see /usr/share/doc/pure-ftpd/README.gz or
+# pure-uploadscript(8)
+
+# example: UPLOADSCRIPT=/usr/local/sbin/uploadhandler.pl
+UPLOADSCRIPT=
+
+# if set, pure-uploadscript will spawn $UPLOADSCRIPT running as the
+# given uid and gid
+UPLOADUID=
+UPLOADGID=
diff --git a/pkg/saz-pureftpd-0.0.1/tests/init.pp b/pkg/saz-pureftpd-0.0.1/tests/init.pp
new file mode 100644
index 0000000..a2d2040
--- /dev/null
+++ b/pkg/saz-pureftpd-0.0.1/tests/init.pp
@@ -0,0 +1 @@
+include pureftpd
diff --git a/pkg/saz-pureftpd-1.0.0.tar.gz b/pkg/saz-pureftpd-1.0.0.tar.gz
new file mode 100644
index 0000000..d50ec0b
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0.tar.gz
Binary files differ
diff --git a/pkg/saz-pureftpd-1.0.0/Modulefile b/pkg/saz-pureftpd-1.0.0/Modulefile
new file mode 100644
index 0000000..c8c1a65
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/Modulefile
@@ -0,0 +1,8 @@
+name 'saz-pureftpd'
+version '1.0.0'
+source 'UNKNOWN'
+author 'saz'
+license 'UNKNOWN'
+summary 'UNKNOWN'
+description 'Module for configuring pure-ftpd via puppet'
+project_page 'https://github.com/saz/puppet-pureftpd'
diff --git a/pkg/saz-pureftpd-1.0.0/README b/pkg/saz-pureftpd-1.0.0/README
new file mode 100644
index 0000000..231fdac
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/README
@@ -0,0 +1,3 @@
+pureftpd
+
+This is the pureftpd module.
diff --git a/pkg/saz-pureftpd-1.0.0/files/README.markdown b/pkg/saz-pureftpd-1.0.0/files/README.markdown
new file mode 100644
index 0000000..be52188
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/README.markdown
@@ -0,0 +1,22 @@
+Files
+=====
+
+Puppet comes with both a client and server for copying files around. The file
+serving function is provided as part of the central Puppet daemon,
+puppetmasterd, and the client function is used through the source attribute of
+file objects. Learn more at
+http://projects.puppetlabs.com/projects/puppet/wiki/File_Serving_Configuration
+
+You can use managed files like this:
+
+ class myclass {
+ package { mypackage: ensure => latest }
+ service { myservice: ensure => running }
+ file { "/etc/myfile":
+ source => "puppet://$servername/modules/mymodule/myfile"
+ }
+ }
+
+The files are searched for in:
+
+ $modulepath/mymodule/files/myfile
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/AltLog b/pkg/saz-pureftpd-1.0.0/files/debian/AltLog
new file mode 100644
index 0000000..e7d518d
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/AltLog
@@ -0,0 +1 @@
+#clf:/var/log/pure-ftpd/transfer.log
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/ChrootEveryone b/pkg/saz-pureftpd-1.0.0/files/debian/ChrootEveryone
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/ChrootEveryone
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/DontResolve b/pkg/saz-pureftpd-1.0.0/files/debian/DontResolve
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/DontResolve
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/MaxClientsNumber b/pkg/saz-pureftpd-1.0.0/files/debian/MaxClientsNumber
new file mode 100644
index 0000000..7273c0f
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/MaxClientsNumber
@@ -0,0 +1 @@
+25
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/MinUID b/pkg/saz-pureftpd-1.0.0/files/debian/MinUID
new file mode 100644
index 0000000..bb95160
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/MinUID
@@ -0,0 +1 @@
+33
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/NoAnonymous b/pkg/saz-pureftpd-1.0.0/files/debian/NoAnonymous
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/NoAnonymous
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/PAMAuthentication b/pkg/saz-pureftpd-1.0.0/files/debian/PAMAuthentication
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/PAMAuthentication
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/PureDB b/pkg/saz-pureftpd-1.0.0/files/debian/PureDB
new file mode 100644
index 0000000..ee48061
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/PureDB
@@ -0,0 +1 @@
+/etc/pure-ftpd/pureftpd.pdb
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/UnixAuthentication b/pkg/saz-pureftpd-1.0.0/files/debian/UnixAuthentication
new file mode 100644
index 0000000..7cfab5b
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/UnixAuthentication
@@ -0,0 +1 @@
+yes
diff --git a/pkg/saz-pureftpd-1.0.0/files/debian/VerboseLog b/pkg/saz-pureftpd-1.0.0/files/debian/VerboseLog
new file mode 100644
index 0000000..54299a4
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/files/debian/VerboseLog
@@ -0,0 +1 @@
+no \ No newline at end of file
diff --git a/pkg/saz-pureftpd-1.0.0/manifests/config.pp b/pkg/saz-pureftpd-1.0.0/manifests/config.pp
new file mode 100644
index 0000000..71e6bd8
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/manifests/config.pp
@@ -0,0 +1,23 @@
+class pureftpd::config {
+ file { "${pureftpd::params::config_dir}conf":
+ ensure => directory,
+ recurse => true,
+ purge => true,
+ force => true,
+ owner => root,
+ group => root,
+ source => $source ? {
+ undef => "puppet:///modules/${module_name}/${pureftpd::params::config_source}",
+ default => $pureftpd::config_source,
+ },
+ require => Class['pureftpd::install'],
+ }
+
+ file { $pureftpd::params::config_default_file:
+ ensure => present,
+ owner => root,
+ group => root,
+ content => template("${module_name}/default_config.erb"),
+ require => Class['pureftpd::install'],
+ }
+}
diff --git a/pkg/saz-pureftpd-1.0.0/manifests/init.pp b/pkg/saz-pureftpd-1.0.0/manifests/init.pp
new file mode 100644
index 0000000..6590f4b
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/manifests/init.pp
@@ -0,0 +1,16 @@
+# Class: pureftpd
+#
+# This module manages pureftpd
+#
+# Parameters:
+#
+# Actions:
+#
+# Requires:
+#
+# Sample Usage:
+#
+# [Remember: No empty lines between comments and class definition]
+class pureftpd ($auth_type = undef, $config_source = undef, $virtualchroot = false) {
+ include pureftpd::params, pureftpd::install, pureftpd::config, pureftpd::service
+}
diff --git a/pkg/saz-pureftpd-1.0.0/manifests/install.pp b/pkg/saz-pureftpd-1.0.0/manifests/install.pp
new file mode 100644
index 0000000..8bf9a98
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/manifests/install.pp
@@ -0,0 +1,5 @@
+class pureftpd::install {
+ package { $pureftpd::params::package_name:
+ ensure => present,
+ }
+}
diff --git a/pkg/saz-pureftpd-1.0.0/manifests/params.pp b/pkg/saz-pureftpd-1.0.0/manifests/params.pp
new file mode 100644
index 0000000..911da7e
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/manifests/params.pp
@@ -0,0 +1,22 @@
+class pureftpd::params {
+ case $operatingsystem {
+ /(Ubuntu|Debian)/: {
+ case $auth_type {
+ 'mysql': { $real_auth_type = '-mysql' }
+ 'ldap': { $real_auth_type = '-ldap' }
+ 'postgresql': { $real_auth_type = '-postgresql' }
+ default: { $real_auth_type = '' }
+ }
+ $package_name = "pure-ftpd${real_auth_type}"
+ $config_dir = '/etc/pure-ftpd/'
+ $service_name = "pure-ftpd${real_auth_type}"
+ $config_default_file = '/etc/default/pure-ftpd-common'
+ $config_source = 'debian'
+ }
+ }
+
+ case $pureftpd::virtualchroot {
+ true: { $real_virtualchroot = true }
+ default: { $real_virtualchroot = false }
+ }
+}
diff --git a/pkg/saz-pureftpd-1.0.0/manifests/service.pp b/pkg/saz-pureftpd-1.0.0/manifests/service.pp
new file mode 100644
index 0000000..039ca4f
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/manifests/service.pp
@@ -0,0 +1,9 @@
+class pureftpd::service {
+ service { $pureftpd::params::service_name:
+ ensure => running,
+ enable => true,
+ hasrestart => true,
+ hasstatus => false,
+ require => Class['pureftpd::config'],
+ }
+}
diff --git a/pkg/saz-pureftpd-1.0.0/metadata.json b/pkg/saz-pureftpd-1.0.0/metadata.json
new file mode 100644
index 0000000..8f20daa
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/metadata.json
@@ -0,0 +1,45 @@
+{
+ "summary": "UNKNOWN",
+ "project_page": "https://github.com/saz/puppet-pureftpd",
+ "author": "saz",
+ "source": "UNKNOWN",
+ "dependencies": [
+
+ ],
+ "checksums": {
+ "manifests/params.pp": "e7b3cf3a6115e96a6f76d3ff2c545625",
+ "files/debian/AltLog": "a3d7f89dc916062234237acf75bde97d",
+ "files/debian/MinUID": "4fbafd6948b6529caa2b78e476359875",
+ "spec/spec_helper.rb": "ca19ec4f451ebc7fdb035b52eae6e909",
+ "files/debian/NoAnonymous": "eb4585ad9fe0426781ed7c49252f8225",
+ "spec/unit/puppet/provider/README.markdown": "e52668944ee6af2fb5d5b9e798342645",
+ "files/README.markdown": "3d44458cc68d8513b51e3b56c604eec4",
+ "files/debian/DontResolve": "eb4585ad9fe0426781ed7c49252f8225",
+ "files/debian/PureDB": "6db5965698527e1f140dfc73ed40d47c",
+ "files/debian/UnixAuthentication": "eb4585ad9fe0426781ed7c49252f8225",
+ "manifests/config.pp": "9a67980c30c5d3c0c0fd9ecfb81627a8",
+ "README": "34cdc51f71f626da2194b0bbf2e6a6e6",
+ "manifests/service.pp": "722d62651e6c61da4330332b6382f5a9",
+ "templates/README.markdown": "aada0a1952329e46b98695349dba6203",
+ "templates/default_config.erb": "222945189c5b8d4efa9fe2c3cc01f435",
+ "tests/init.pp": "5d6e84bd06e23c4d565782db67e333ec",
+ "files/debian/PAMAuthentication": "eb4585ad9fe0426781ed7c49252f8225",
+ "spec/README.markdown": "32a1fc0121c28aff554ef5d422b8b51e",
+ "manifests/install.pp": "51caa25f90a479cd501824362b9bdba1",
+ "files/debian/VerboseLog": "7fa3b767c460b54a2be4d49030b349c7",
+ "files/debian/MaxClientsNumber": "2a52a5e65fc3c43f409550dfad1f904f",
+ "metadata.json": "d34d0b70aba36510fbc2df4e667479ef",
+ "files/debian/ChrootEveryone": "eb4585ad9fe0426781ed7c49252f8225",
+ "spec/spec.opts": "a600ded995d948e393fbe2320ba8e51c",
+ "Modulefile": "f8bddfe97a67a6d778a08b9b570a3ee1",
+ "manifests/init.pp": "61675a905c40641e70d6f74985fda8c8",
+ "spec/unit/puppet/type/README.markdown": "de26a7643813abd6c2e7e28071b1ef94"
+ },
+ "license": "UNKNOWN",
+ "types": [
+
+ ],
+ "version": "1.0.0",
+ "name": "saz-pureftpd",
+ "description": "Module for configuring pure-ftpd via puppet"
+} \ No newline at end of file
diff --git a/pkg/saz-pureftpd-1.0.0/spec/README.markdown b/pkg/saz-pureftpd-1.0.0/spec/README.markdown
new file mode 100644
index 0000000..286d341
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/spec/README.markdown
@@ -0,0 +1,7 @@
+Specs
+=====
+
+The Puppet project uses RSpec for testing.
+
+For more information on RSpec, see http://rspec.info/
+
diff --git a/pkg/saz-pureftpd-1.0.0/spec/spec.opts b/pkg/saz-pureftpd-1.0.0/spec/spec.opts
new file mode 100644
index 0000000..91cd642
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/spec/spec.opts
@@ -0,0 +1,6 @@
+--format
+s
+--colour
+--loadby
+mtime
+--backtrace
diff --git a/pkg/saz-pureftpd-1.0.0/spec/spec_helper.rb b/pkg/saz-pureftpd-1.0.0/spec/spec_helper.rb
new file mode 100644
index 0000000..a4aeeae
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/spec/spec_helper.rb
@@ -0,0 +1,18 @@
+require 'pathname'
+dir = Pathname.new(__FILE__).parent
+$LOAD_PATH.unshift(dir, dir + 'lib', dir + '../lib')
+
+require 'mocha'
+require 'puppet'
+gem 'rspec', '=1.2.9'
+require 'spec/autorun'
+
+Spec::Runner.configure do |config|
+ config.mock_with :mocha
+end
+
+# We need this because the RAL uses 'should' as a method. This
+# allows us the same behaviour but with a different method name.
+class Object
+ alias :must :should
+end
diff --git a/pkg/saz-pureftpd-1.0.0/spec/unit/puppet/provider/README.markdown b/pkg/saz-pureftpd-1.0.0/spec/unit/puppet/provider/README.markdown
new file mode 100644
index 0000000..7025850
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/spec/unit/puppet/provider/README.markdown
@@ -0,0 +1,4 @@
+Provider Specs
+==============
+
+Define specs for your providers under this directory.
diff --git a/pkg/saz-pureftpd-1.0.0/spec/unit/puppet/type/README.markdown b/pkg/saz-pureftpd-1.0.0/spec/unit/puppet/type/README.markdown
new file mode 100644
index 0000000..1ee19ac
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/spec/unit/puppet/type/README.markdown
@@ -0,0 +1,4 @@
+Resource Type Specs
+===================
+
+Define specs for your resource types in this directory.
diff --git a/pkg/saz-pureftpd-1.0.0/templates/README.markdown b/pkg/saz-pureftpd-1.0.0/templates/README.markdown
new file mode 100644
index 0000000..575bbea
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/templates/README.markdown
@@ -0,0 +1,23 @@
+Templates
+=========
+
+Puppet supports templates and templating via ERB, which is part of the Ruby
+standard library and is used for many other projects including Ruby on Rails.
+Templates allow you to manage the content of template files, for example
+configuration files that cannot yet be managed as a Puppet type. Learn more at
+http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Templating
+
+You can use templates like this:
+
+ class myclass {
+ package { mypackage: ensure => latest }
+ service { myservice: ensure => running }
+ file { "/etc/myfile":
+ content => template("mymodule/myfile.erb")
+ }
+ }
+
+The templates are searched for in:
+
+ $templatedir/mymodule/myfile.erb
+ $modulepath/mymodule/templates/myfile.erb
diff --git a/pkg/saz-pureftpd-1.0.0/templates/default_config.erb b/pkg/saz-pureftpd-1.0.0/templates/default_config.erb
new file mode 100644
index 0000000..49b53eb
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/templates/default_config.erb
@@ -0,0 +1,26 @@
+# Configuration for pure-ftpd
+# (this file is sourced by /bin/sh, edit accordingly)
+
+# STANDALONE_OR_INETD
+# valid values are "standalone" and "inetd".
+# Any change here overrides the setting in debconf.
+STANDALONE_OR_INETD=standalone
+
+# VIRTUALCHROOT:
+# whether to use binary with virtualchroot support
+# valid values are "true" or "false"
+# Any change here overrides the setting in debconf.
+VIRTUALCHROOT=<%= scope.lookupvar('pureftpd::params::real_virtualchroot') %>
+
+# UPLOADSCRIPT: if this is set and the daemon is run in standalone mode,
+# pure-uploadscript will also be run to spawn the program given below
+# for handling uploads. see /usr/share/doc/pure-ftpd/README.gz or
+# pure-uploadscript(8)
+
+# example: UPLOADSCRIPT=/usr/local/sbin/uploadhandler.pl
+UPLOADSCRIPT=
+
+# if set, pure-uploadscript will spawn $UPLOADSCRIPT running as the
+# given uid and gid
+UPLOADUID=
+UPLOADGID=
diff --git a/pkg/saz-pureftpd-1.0.0/tests/init.pp b/pkg/saz-pureftpd-1.0.0/tests/init.pp
new file mode 100644
index 0000000..a2d2040
--- /dev/null
+++ b/pkg/saz-pureftpd-1.0.0/tests/init.pp
@@ -0,0 +1 @@
+include pureftpd
diff --git a/spec/README.markdown b/spec/README.markdown
new file mode 100644
index 0000000..286d341
--- /dev/null
+++ b/spec/README.markdown
@@ -0,0 +1,7 @@
+Specs
+=====
+
+The Puppet project uses RSpec for testing.
+
+For more information on RSpec, see http://rspec.info/
+
diff --git a/spec/spec.opts b/spec/spec.opts
new file mode 100644
index 0000000..91cd642
--- /dev/null
+++ b/spec/spec.opts
@@ -0,0 +1,6 @@
+--format
+s
+--colour
+--loadby
+mtime
+--backtrace
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
new file mode 100644
index 0000000..a4aeeae
--- /dev/null
+++ b/spec/spec_helper.rb
@@ -0,0 +1,18 @@
+require 'pathname'
+dir = Pathname.new(__FILE__).parent
+$LOAD_PATH.unshift(dir, dir + 'lib', dir + '../lib')
+
+require 'mocha'
+require 'puppet'
+gem 'rspec', '=1.2.9'
+require 'spec/autorun'
+
+Spec::Runner.configure do |config|
+ config.mock_with :mocha
+end
+
+# We need this because the RAL uses 'should' as a method. This
+# allows us the same behaviour but with a different method name.
+class Object
+ alias :must :should
+end
diff --git a/spec/unit/puppet/provider/README.markdown b/spec/unit/puppet/provider/README.markdown
new file mode 100644
index 0000000..7025850
--- /dev/null
+++ b/spec/unit/puppet/provider/README.markdown
@@ -0,0 +1,4 @@
+Provider Specs
+==============
+
+Define specs for your providers under this directory.
diff --git a/spec/unit/puppet/type/README.markdown b/spec/unit/puppet/type/README.markdown
new file mode 100644
index 0000000..1ee19ac
--- /dev/null
+++ b/spec/unit/puppet/type/README.markdown
@@ -0,0 +1,4 @@
+Resource Type Specs
+===================
+
+Define specs for your resource types in this directory.
diff --git a/templates/README.markdown b/templates/README.markdown
new file mode 100644
index 0000000..575bbea
--- /dev/null
+++ b/templates/README.markdown
@@ -0,0 +1,23 @@
+Templates
+=========
+
+Puppet supports templates and templating via ERB, which is part of the Ruby
+standard library and is used for many other projects including Ruby on Rails.
+Templates allow you to manage the content of template files, for example
+configuration files that cannot yet be managed as a Puppet type. Learn more at
+http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Templating
+
+You can use templates like this:
+
+ class myclass {
+ package { mypackage: ensure => latest }
+ service { myservice: ensure => running }
+ file { "/etc/myfile":
+ content => template("mymodule/myfile.erb")
+ }
+ }
+
+The templates are searched for in:
+
+ $templatedir/mymodule/myfile.erb
+ $modulepath/mymodule/templates/myfile.erb
diff --git a/templates/default_config.erb b/templates/default_config.erb
new file mode 100644
index 0000000..49b53eb
--- /dev/null
+++ b/templates/default_config.erb
@@ -0,0 +1,26 @@
+# Configuration for pure-ftpd
+# (this file is sourced by /bin/sh, edit accordingly)
+
+# STANDALONE_OR_INETD
+# valid values are "standalone" and "inetd".
+# Any change here overrides the setting in debconf.
+STANDALONE_OR_INETD=standalone
+
+# VIRTUALCHROOT:
+# whether to use binary with virtualchroot support
+# valid values are "true" or "false"
+# Any change here overrides the setting in debconf.
+VIRTUALCHROOT=<%= scope.lookupvar('pureftpd::params::real_virtualchroot') %>
+
+# UPLOADSCRIPT: if this is set and the daemon is run in standalone mode,
+# pure-uploadscript will also be run to spawn the program given below
+# for handling uploads. see /usr/share/doc/pure-ftpd/README.gz or
+# pure-uploadscript(8)
+
+# example: UPLOADSCRIPT=/usr/local/sbin/uploadhandler.pl
+UPLOADSCRIPT=
+
+# if set, pure-uploadscript will spawn $UPLOADSCRIPT running as the
+# given uid and gid
+UPLOADUID=
+UPLOADGID=
diff --git a/tests/init.pp b/tests/init.pp
new file mode 100644
index 0000000..a2d2040
--- /dev/null
+++ b/tests/init.pp
@@ -0,0 +1 @@
+include pureftpd