From 44835180c5819f61684cfe4f2aaa76519e8c448b Mon Sep 17 00:00:00 2001 From: Alex Mace Date: Thu, 22 Jan 2015 16:28:32 +0000 Subject: [PATCH 1/6] Added the uopz extension --- manifests/extension/uopz.pp | 58 +++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 manifests/extension/uopz.pp diff --git a/manifests/extension/uopz.pp b/manifests/extension/uopz.pp new file mode 100644 index 0000000..9ccb241 --- /dev/null +++ b/manifests/extension/uopz.pp @@ -0,0 +1,58 @@ +# Installs a php extension for a specific version of php. +# +# Usage: +# +# php::extension::uopz { 'uopz for 5.4.10': +# php => '5.4.10', +# version => '1.0.3' +# } +# +define php::extension::uopz( + $php, + $version = '2.0.6' +) { + include boxen::config + + require php::config + # Require php version eg. php::5_4_10 + # This will compile, install and set up config dirs if not present + require join(['php', join(split($php, '[.]'), '_')], '::') + + $extension = 'uopz' + + # Final module install path + $module_path = "${php::config::root}/versions/${php}/modules/${extension}.so" + + # Clone the source respository + repository { "${php::config::extensioncachedir}/uopz": + source => 'krakjoe/uopz' + } + + + # Additional options + $configure_params = "" + + php_extension { $name: + provider => 'git', + + extension => $extension, + version => $version, + + homebrew_path => $boxen::config::homebrewdir, + phpenv_root => $php::config::root, + php_version => $php, + + cache_dir => $php::config::extensioncachedir, + require => Repository["${php::config::extensioncachedir}/uopz"], + + configure_params => $configure_params, + } + + # Add config file once extension is installed + + file { "${php::config::configdir}/${php}/conf.d/${extension}.ini": + content => template('php/extensions/zend_generic.ini.erb'), + require => Php_extension[$name], + } + +} From c7fd8b96a77429694b1e50dd27a97b15b3251344 Mon Sep 17 00:00:00 2001 From: Alex Mace Date: Thu, 22 Jan 2015 16:36:29 +0000 Subject: [PATCH 2/6] uopz prepends all of its tags with a 'v' --- manifests/extension/uopz.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/extension/uopz.pp b/manifests/extension/uopz.pp index 9ccb241..0c1df97 100644 --- a/manifests/extension/uopz.pp +++ b/manifests/extension/uopz.pp @@ -36,7 +36,7 @@ provider => 'git', extension => $extension, - version => $version, + version => "v${version}", homebrew_path => $boxen::config::homebrewdir, phpenv_root => $php::config::root, From 580efbfc1b481713d223afde05fd32176650d274 Mon Sep 17 00:00:00 2001 From: Alex Mace Date: Tue, 28 Apr 2015 00:26:16 +0100 Subject: [PATCH 3/6] Updates based on what other extensions are doing, and fixing a lart error --- manifests/extension/uopz.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/extension/uopz.pp b/manifests/extension/uopz.pp index 0c1df97..6614420 100644 --- a/manifests/extension/uopz.pp +++ b/manifests/extension/uopz.pp @@ -16,7 +16,7 @@ require php::config # Require php version eg. php::5_4_10 # This will compile, install and set up config dirs if not present - require join(['php', join(split($php, '[.]'), '_')], '::') + php_require($php) $extension = 'uopz' @@ -30,7 +30,7 @@ # Additional options - $configure_params = "" + $configure_params = '' php_extension { $name: provider => 'git', From 55094220063a4c7aba9f0bbac524508d29f185a6 Mon Sep 17 00:00:00 2001 From: Alex Mace Date: Tue, 28 Apr 2015 00:26:42 +0100 Subject: [PATCH 4/6] Added a generic ini file for zend extensions --- templates/extensions/zend_generic.ini.erb | 1 + 1 file changed, 1 insertion(+) create mode 100644 templates/extensions/zend_generic.ini.erb diff --git a/templates/extensions/zend_generic.ini.erb b/templates/extensions/zend_generic.ini.erb new file mode 100644 index 0000000..8affacc --- /dev/null +++ b/templates/extensions/zend_generic.ini.erb @@ -0,0 +1 @@ +zend_extension=<%= @module_path %> From 21443f4ea8bacc5379a88744cea1d8d411f15a46 Mon Sep 17 00:00:00 2001 From: Alex Mace Date: Tue, 28 Apr 2015 00:26:58 +0100 Subject: [PATCH 5/6] spec file for the uopz extension --- .../extensions/php_extension_uopz_spec.rb | 38 +++++++++++++++++++ spec/fixtures/uopz.ini | 1 + 2 files changed, 39 insertions(+) create mode 100644 spec/defines/extensions/php_extension_uopz_spec.rb create mode 100644 spec/fixtures/uopz.ini diff --git a/spec/defines/extensions/php_extension_uopz_spec.rb b/spec/defines/extensions/php_extension_uopz_spec.rb new file mode 100644 index 0000000..e362701 --- /dev/null +++ b/spec/defines/extensions/php_extension_uopz_spec.rb @@ -0,0 +1,38 @@ +require 'spec_helper' + +describe "php::extension::uopz" do + let(:facts) { default_test_facts } + let(:title) { "uopz for 5.4.17" } + let(:params) do + { + :php => "5.4.17", + :version => "2.0.6" + } + end + + it do + should contain_class("php::config") + should contain_php__version("5.4.17") + + should contain_repository("/test/boxen/data/php/cache/extensions/uopz").with({ + :source => "krakjoe/uopz" + }) + + should contain_php_extension("uopz for 5.4.17").with({ + :provider => "git", + :extension => "uopz", + :version => "v2.0.6", + :homebrew_path => "/test/boxen/homebrew", + :phpenv_root => "/test/boxen/phpenv", + :php_version => "5.4.17", + :cache_dir => "/test/boxen/data/php/cache/extensions", + :require => "Repository[/test/boxen/data/php/cache/extensions/uopz]", + :configure_params => '', + }) + + should contain_file("/test/boxen/config/php/5.4.17/conf.d/uopz.ini").with({ + :content => File.read("spec/fixtures/uopz.ini"), + :require => "Php_extension[uopz for 5.4.17]" + }) + end +end diff --git a/spec/fixtures/uopz.ini b/spec/fixtures/uopz.ini new file mode 100644 index 0000000..a584d08 --- /dev/null +++ b/spec/fixtures/uopz.ini @@ -0,0 +1 @@ +zend_extension=/test/boxen/phpenv/versions/5.4.17/modules/uopz.so From 4f8b9791ac04760caaa97f6a86f682666bd896b4 Mon Sep 17 00:00:00 2001 From: Alex Mace Date: Wed, 13 May 2015 21:20:17 +0100 Subject: [PATCH 6/6] Updated the comment to remove the reference to v1 syntax --- manifests/extension/uopz.pp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/manifests/extension/uopz.pp b/manifests/extension/uopz.pp index 6614420..4f98357 100644 --- a/manifests/extension/uopz.pp +++ b/manifests/extension/uopz.pp @@ -12,10 +12,9 @@ $version = '2.0.6' ) { include boxen::config - require php::config - # Require php version eg. php::5_4_10 - # This will compile, install and set up config dirs if not present + + # Ensure that the specified version of PHP is installed. php_require($php) $extension = 'uopz'