Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts: htdocs/core/class/commonobject.class.php htdocs/product/liste.php
This commit is contained in:
commit
ef5035b349
5
.gitignore
vendored
5
.gitignore
vendored
@ -17,7 +17,4 @@ doxygen_warnings.log
|
|||||||
*.iml
|
*.iml
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
# Vagrant generated files
|
# Vagrant generated files
|
||||||
.vagrant
|
.vagrant
|
||||||
/index.html
|
|
||||||
/phpmyadmin
|
|
||||||
/xhprof
|
|
||||||
@ -180,8 +180,38 @@ tools:
|
|||||||
- 'htdocs/includes/*'
|
- 'htdocs/includes/*'
|
||||||
paths: { }
|
paths: { }
|
||||||
|
|
||||||
|
php_changetracking:
|
||||||
|
enabled: false
|
||||||
|
bug_patterns:
|
||||||
|
- '\bfix(?:es|ed)?\b'
|
||||||
|
feature_patterns:
|
||||||
|
- '\badd(?:s|ed)?\b'
|
||||||
|
- '\bimplement(?:s|ed)?\b'
|
||||||
|
filter:
|
||||||
|
excluded_paths:
|
||||||
|
- 'build/*'
|
||||||
|
- 'dev/*'
|
||||||
|
- 'doc/*'
|
||||||
|
- 'test/*'
|
||||||
|
- 'htdocs/includes/*'
|
||||||
|
paths: { }
|
||||||
|
|
||||||
# Coding-Style / Bug Detection
|
# Coding-Style / Bug Detection
|
||||||
js_hint: false
|
js_hint:
|
||||||
|
enabled: false
|
||||||
|
use_native_config: true
|
||||||
|
extensions:
|
||||||
|
- js
|
||||||
|
filter:
|
||||||
|
excluded_paths:
|
||||||
|
- 'build/*'
|
||||||
|
- 'dev/*'
|
||||||
|
- 'doc/*'
|
||||||
|
- 'test/*'
|
||||||
|
- 'htdocs/includes/*'
|
||||||
|
paths: { }
|
||||||
|
config: { }
|
||||||
|
path_configs: { }
|
||||||
|
|
||||||
|
|
||||||
before_commands: { }
|
before_commands: { }
|
||||||
|
|||||||
21
.travis.yml
21
.travis.yml
@ -36,6 +36,7 @@ before_script:
|
|||||||
- echo Install phpcs then show installed rules
|
- echo Install phpcs then show installed rules
|
||||||
- pyrus install pear/PHP_CodeSniffer
|
- pyrus install pear/PHP_CodeSniffer
|
||||||
- phpenv rehash
|
- phpenv rehash
|
||||||
|
- phpcs --version
|
||||||
- phpcs -i
|
- phpcs -i
|
||||||
- echo Create dir $(pwd)/htdocs/documents
|
- echo Create dir $(pwd)/htdocs/documents
|
||||||
- sudo mkdir -p $(pwd)/htdocs/documents/admin/temp;
|
- sudo mkdir -p $(pwd)/htdocs/documents/admin/temp;
|
||||||
@ -53,12 +54,14 @@ before_script:
|
|||||||
- sh -c "if [ '$PHPV' = '5.3' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
|
- sh -c "if [ '$PHPV' = '5.3' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
|
||||||
- sh -c "if [ '$PHPV' = '5.4' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
|
- sh -c "if [ '$PHPV' = '5.4' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
|
||||||
- cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
|
- cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
|
||||||
|
- echo Mysql version
|
||||||
|
- mysql --version
|
||||||
- echo Init database
|
- echo Init database
|
||||||
- sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi"
|
- sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi"
|
||||||
- sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE myapp_test;' -U postgres; fi"
|
- sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE myapp_test;' -U postgres; fi"
|
||||||
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'DROP DATABASE IF EXISTS myapp_test;'; fi"
|
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'DROP DATABASE IF EXISTS myapp_test;'; fi"
|
||||||
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'CREATE DATABASE IF NOT EXISTS myapp_test;'; fi"
|
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'CREATE DATABASE IF NOT EXISTS myapp_test;'; fi"
|
||||||
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -D myapp_test < $(pwd)/dev/initdata/mysqldump_dolibarr_3.4.0.sql; fi"
|
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -D myapp_test < $(pwd)/dev/initdata/mysqldump_dolibarr_3.5.0.sql; fi"
|
||||||
- echo Create config file htdocs/conf/conf.php
|
- echo Create config file htdocs/conf/conf.php
|
||||||
- echo '<?php ' > htdocs/conf/conf.php
|
- echo '<?php ' > htdocs/conf/conf.php
|
||||||
- sh -c "if [ '$DB' = 'pgsql' ]; then echo '$'dolibarr_main_db_type=\'pgsql\'';' >> htdocs/conf/conf.php; fi"
|
- sh -c "if [ '$DB' = 'pgsql' ]; then echo '$'dolibarr_main_db_type=\'pgsql\'';' >> htdocs/conf/conf.php; fi"
|
||||||
@ -87,18 +90,22 @@ before_script:
|
|||||||
|
|
||||||
script:
|
script:
|
||||||
- cd htdocs/install
|
- cd htdocs/install
|
||||||
- php upgrade.php 3.4.0 3.5.0 > upgrade.log
|
- date
|
||||||
- php upgrade2.php 3.4.0 3.5.0 > upgrade2.log
|
# - php upgrade.php 3.4.0 3.5.0 > upgrade.log
|
||||||
|
# - php upgrade2.php 3.4.0 3.5.0 > upgrade2.log
|
||||||
- php upgrade.php 3.5.0 3.6.0 >> upgrade.log
|
- php upgrade.php 3.5.0 3.6.0 >> upgrade.log
|
||||||
- php upgrade2.php 3.5.0 3.6.0 >> upgrade2.log
|
- php upgrade2.php 3.5.0 3.6.0 >> upgrade2.log
|
||||||
# - cat upgrade.log
|
- php upgrade.php 3.6.0 3.7.0 >> upgrade.log
|
||||||
|
# - cat upgrade360370.log
|
||||||
|
- php upgrade2.php 3.6.0 3.7.0 >> upgrade2.log
|
||||||
# - cat upgrade2.log
|
# - cat upgrade2.log
|
||||||
- cd ../..
|
- cd ../..
|
||||||
- date
|
- date
|
||||||
# - phpcs -p --warning-severity=0 -s --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ htdocs/core/class/dolgraph.class.php 2>&1
|
|
||||||
- phpcs -p --warning-severity=0 -s --report-checkstyle --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ . 2>&1
|
|
||||||
- date
|
|
||||||
- phpunit -d memory_limit=-1 --configuration test/phpunit/phpunittest.xml test/phpunit/AllTests.php
|
- phpunit -d memory_limit=-1 --configuration test/phpunit/phpunittest.xml test/phpunit/AllTests.php
|
||||||
|
- date
|
||||||
|
# - phpcs -p --warning-severity=0 -s --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ htdocs/core/class/dolgraph.class.php 2>&1
|
||||||
|
- phpcs -p --warning-severity=0 -s --report-checkstyle --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/htdocs/conf/conf.php,/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ . 2>&1
|
||||||
|
- date
|
||||||
|
|
||||||
after_script:
|
after_script:
|
||||||
# - echo Output dolibarr log file; cat $(pwd)/htdocs/documents/dolibarr.log
|
# - echo Output dolibarr log file; cat $(pwd)/htdocs/documents/dolibarr.log
|
||||||
|
|||||||
37
.tx/config
37
.tx/config
@ -2,6 +2,12 @@
|
|||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
lang_map = uz: uz_UZ
|
lang_map = uz: uz_UZ
|
||||||
|
|
||||||
|
[dolibarr.accountancy]
|
||||||
|
file_filter = htdocs/langs/<lang>/accountancy.lang
|
||||||
|
source_file = htdocs/langs/en_US/accountancy.lang
|
||||||
|
source_lang = en_US
|
||||||
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
[dolibarr.admin]
|
[dolibarr.admin]
|
||||||
file_filter = htdocs/langs/<lang>/admin.lang
|
file_filter = htdocs/langs/<lang>/admin.lang
|
||||||
source_file = htdocs/langs/en_US/admin.lang
|
source_file = htdocs/langs/en_US/admin.lang
|
||||||
@ -212,12 +218,6 @@ source_file = htdocs/langs/en_US/orders.lang
|
|||||||
source_lang = en_US
|
source_lang = en_US
|
||||||
type = MOZILLAPROPERTIES
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
[dolibarr.oscommerce]
|
|
||||||
file_filter = htdocs/langs/<lang>/oscommerce.lang
|
|
||||||
source_file = htdocs/langs/en_US/oscommerce.lang
|
|
||||||
source_lang = en_US
|
|
||||||
type = MOZILLAPROPERTIES
|
|
||||||
|
|
||||||
[dolibarr.other]
|
[dolibarr.other]
|
||||||
file_filter = htdocs/langs/<lang>/other.lang
|
file_filter = htdocs/langs/<lang>/other.lang
|
||||||
source_file = htdocs/langs/en_US/other.lang
|
source_file = htdocs/langs/en_US/other.lang
|
||||||
@ -236,6 +236,18 @@ source_file = htdocs/langs/en_US/paypal.lang
|
|||||||
source_lang = en_US
|
source_lang = en_US
|
||||||
type = MOZILLAPROPERTIES
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
|
[dolibarr.printipp]
|
||||||
|
file_filter = htdocs/langs/<lang>/printipp.lang
|
||||||
|
source_file = htdocs/langs/en_US/printipp.lang
|
||||||
|
source_lang = en_US
|
||||||
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
|
[dolibarr.productbatch]
|
||||||
|
file_filter = htdocs/langs/<lang>/productbatch.lang
|
||||||
|
source_file = htdocs/langs/en_US/productbatch.lang
|
||||||
|
source_lang = en_US
|
||||||
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
[dolibarr.products]
|
[dolibarr.products]
|
||||||
file_filter = htdocs/langs/<lang>/products.lang
|
file_filter = htdocs/langs/<lang>/products.lang
|
||||||
source_file = htdocs/langs/en_US/products.lang
|
source_file = htdocs/langs/en_US/products.lang
|
||||||
@ -254,6 +266,12 @@ source_file = htdocs/langs/en_US/propal.lang
|
|||||||
source_lang = en_US
|
source_lang = en_US
|
||||||
type = MOZILLAPROPERTIES
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
|
[dolibarr.resource]
|
||||||
|
file_filter = htdocs/langs/<lang>/resource.lang
|
||||||
|
source_file = htdocs/langs/en_US/resource.lang
|
||||||
|
source_lang = en_US
|
||||||
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
[dolibarr.salaries]
|
[dolibarr.salaries]
|
||||||
file_filter = htdocs/langs/<lang>/salaries.lang
|
file_filter = htdocs/langs/<lang>/salaries.lang
|
||||||
source_file = htdocs/langs/en_US/salaries.lang
|
source_file = htdocs/langs/en_US/salaries.lang
|
||||||
@ -266,12 +284,6 @@ source_file = htdocs/langs/en_US/sendings.lang
|
|||||||
source_lang = en_US
|
source_lang = en_US
|
||||||
type = MOZILLAPROPERTIES
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
[dolibarr.shop]
|
|
||||||
file_filter = htdocs/langs/<lang>/shop.lang
|
|
||||||
source_file = htdocs/langs/en_US/shop.lang
|
|
||||||
source_lang = en_US
|
|
||||||
type = MOZILLAPROPERTIES
|
|
||||||
|
|
||||||
[dolibarr.sms]
|
[dolibarr.sms]
|
||||||
file_filter = htdocs/langs/<lang>/sms.lang
|
file_filter = htdocs/langs/<lang>/sms.lang
|
||||||
source_file = htdocs/langs/en_US/sms.lang
|
source_file = htdocs/langs/en_US/sms.lang
|
||||||
@ -313,4 +325,3 @@ file_filter = htdocs/langs/<lang>/workflow.lang
|
|||||||
source_file = htdocs/langs/en_US/workflow.lang
|
source_file = htdocs/langs/en_US/workflow.lang
|
||||||
source_lang = en_US
|
source_lang = en_US
|
||||||
type = MOZILLAPROPERTIES
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
|
|||||||
62
COPYRIGHT
62
COPYRIGHT
@ -9,41 +9,41 @@ More information: http://www.gnu.org/licenses/gpl-3.0.txt
|
|||||||
|
|
||||||
Dolibarr uses some external libraries released under different licenses. This is compatibility summary:
|
Dolibarr uses some external libraries released under different licenses. This is compatibility summary:
|
||||||
|
|
||||||
Component Version License GPL Compatible Usage
|
Component Version License GPL Compatible Usage
|
||||||
-------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------
|
||||||
PHP libraries:
|
PHP libraries:
|
||||||
AdoDb-Date 0.32 Modified BSD License Yes Date convertion (not into rpm package)
|
AdoDb-Date 0.32 Modified BSD License Yes Date convertion (not into rpm package)
|
||||||
CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG
|
CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG
|
||||||
FPDI 1.4.2 Apache Software License 2.0 Yes PDF templates management
|
FPDI 1.4.2 Apache Software License 2.0 Yes PDF templates management
|
||||||
FPDF_TPL 1.2 Apache Software License 2.0 Yes PDF templates management
|
FPDF_TPL 1.2 Apache Software License 2.0 Yes PDF templates management
|
||||||
GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package)
|
GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package)
|
||||||
NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package)
|
NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package)
|
||||||
odtPHP 1.0.1 GPL-2+ b Yes Library to build/edit ODT files
|
odtPHP 1.0.1 GPL-2+ b Yes Library to build/edit ODT files
|
||||||
PHPExcel 1.7.6 LGPL-2.1+ Yes Read/Write XLS files, read ODS files
|
PHPExcel 1.7.8 LGPL-2.1+ Yes Read/Write XLS files, read ODS files
|
||||||
PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests
|
PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests
|
||||||
TCPDF 6.0.093 LGPL-3+ Yes PDF generation
|
TCPDF 6.0.093 LGPL-3+ Yes PDF generation
|
||||||
|
|
||||||
JS libraries:
|
JS libraries:
|
||||||
jQuery 1.8.2 MIT License Yes JS library
|
jQuery 1.8.2 MIT License Yes JS library
|
||||||
jQuery UI 1.9.1 GPL and MIT License Yes JS library plugin UI
|
jQuery UI 1.9.1 GPL and MIT License Yes JS library plugin UI
|
||||||
jQuery UI Multiselect ? GPL and MIT License Yes JS library plugin for sexier multiselect
|
jQuery select2 3.5.2 GPL and Apache License Yes JS library plugin for sexier multiselect
|
||||||
jQuery blockUI 2.43 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups)
|
jQuery blockUI 2.43 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups)
|
||||||
jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors
|
jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors
|
||||||
jQuery DataTables 1.9.4 BSD Yes JS library for tables output
|
jQuery DataTables 1.9.4 BSD Yes JS library for tables output
|
||||||
jQuery FileUpload 5.0.3 GPL and MIT License Yes JS library to upload files
|
jQuery FileUpload 5.0.3 GPL and MIT License Yes JS library to upload files
|
||||||
jQuery Flot 0.7 MIT License Yes JS library to build graph
|
jQuery Flot 0.7 MIT License Yes JS library to build graph
|
||||||
jQuery JCrop 0.9.8 GPL and MIT License Yes JS library plugin Crop (to crop images)
|
jQuery JCrop 0.9.8 GPL and MIT License Yes JS library plugin Crop (to crop images)
|
||||||
jQuery Jeditable 1.7.1 GPL and MIT License Yes JS library plugin jeditable (to edit in place)
|
jQuery Jeditable 1.7.1 GPL and MIT License Yes JS library plugin jeditable (to edit in place)
|
||||||
jQuery jNotify 1.1.00 Apache Software License 2.0 Yes JS library plugin jNotify (to use ajax popups)
|
jQuery jNotify 1.1.00 Apache Software License 2.0 Yes JS library plugin jNotify (to use ajax popups)
|
||||||
jQuery jPicker 1.1.6 GPL and MIT License Yes JS library for color picker with not defined list of colors
|
jQuery jPicker 1.1.6 GPL and MIT License Yes JS library for color picker with not defined list of colors
|
||||||
jQuery jqueryFileTree 1.0.1 GPL and MIT License Yes JS library for color picker with not defined list of colors
|
jQuery jqueryFileTree 1.0.1 GPL and MIT License Yes JS library for color picker with not defined list of colors
|
||||||
jQuery jquerytreeview 1.4.1 MIT License Yes JS library for color picker with not defined list of colors
|
jQuery jquerytreeview 1.4.1 MIT License Yes JS library for color picker with not defined list of colors
|
||||||
jQuery Layout 1.3.0rc30.74 GPL and MIT License Yes JS library plugin Layout (RC-29.15)
|
jQuery Layout 1.3.0rc30.74 GPL and MIT License Yes JS library plugin Layout (RC-29.15)
|
||||||
jQuery Mobile 1.3.0 GPL and MIT License Yes JS library for smartphone (not used)
|
jQuery Mobile 1.3.0 GPL and MIT License Yes JS library for smartphone (not used)
|
||||||
jQuery TableDnD 0.6 GPL and MIT License Yes JS library plugin TableDnD (to reorder table rows)
|
jQuery TableDnD 0.6 GPL and MIT License Yes JS library plugin TableDnD (to reorder table rows)
|
||||||
jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker
|
jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker
|
||||||
jQuery Tiptip 1.3 GPL and MIT License Yes JS library for tooltips
|
jQuery Tiptip 1.3 GPL and MIT License Yes JS library for tooltips
|
||||||
jsGantt 1.2 BSD License Yes JS library (to build Gantt reports)
|
jsGantt 1.2 BSD License Yes JS library (to build Gantt reports)
|
||||||
|
|
||||||
For licenses compatibility informations:
|
For licenses compatibility informations:
|
||||||
http://www.fsf.org/licensing/licenses/index_html
|
http://www.fsf.org/licensing/licenses/index_html
|
||||||
|
|||||||
178
ChangeLog
178
ChangeLog
@ -2,8 +2,170 @@
|
|||||||
English Dolibarr ChangeLog
|
English Dolibarr ChangeLog
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
***** ChangeLog for 3.5.7 compared to 3.5.6 *****
|
***** ChangeLog for 3.7 compared to 3.6.* *****
|
||||||
Fix: Paypal link were broken dur to SSL v3 closed.
|
For users:
|
||||||
|
- New: Match other auth system: Login can be done entering login or user
|
||||||
|
email (this open the road for SSO).
|
||||||
|
- New: Agenda export by project #1967.
|
||||||
|
- New: Increase length of thirdparty to 128 chars.
|
||||||
|
- New: "Is Order shippable" icon #1975.
|
||||||
|
- New: statistics on supplier orders and invoices on home page.
|
||||||
|
- New: Add permissions to read all trips and expenses.
|
||||||
|
- New: Can filter on date into tab "Referring object" of a project.
|
||||||
|
- New: Module notification has been enhanced:
|
||||||
|
EMail use now language of target contact.
|
||||||
|
Can also define a fixed email for notifications.
|
||||||
|
- New: Feature to link manually an order to an invoice does not disappear once
|
||||||
|
link has been done.
|
||||||
|
- New: Can set a color on user card (visible into agenda view).
|
||||||
|
- New: extrafields for projects and tasks are exported to ODT documents.
|
||||||
|
- New: Add number of active notification into tab title (like we do for notes and documents)
|
||||||
|
- New: Can add product into category from category card.
|
||||||
|
- New: PDF event report show project and status of event.
|
||||||
|
- New: Can filter on status on interventions.
|
||||||
|
- New: Add help info of field type into dictionary of payment types.
|
||||||
|
- New: Add proposals into referer page of thirdparty.
|
||||||
|
- New: On contact list can set filter on both active and not active (no more exclusive select).
|
||||||
|
- New: Intervention documents are now available in ECM module.
|
||||||
|
- New: Can attach supplier order to a customer order.
|
||||||
|
- New: Supervisor is now visible into user list.
|
||||||
|
- New: Add user of creation and validation on invoice export.
|
||||||
|
- New: Add info page about browser.
|
||||||
|
- New: Enable feature developed for 3.6 we forgot to enabled: Adding prefix
|
||||||
|
on uploaded file names.
|
||||||
|
- New: No more dependency between contract and service module.
|
||||||
|
- New: [ task #867 ] Remove ESAEB external module code from core.
|
||||||
|
- New: Can create proposal from an intervention.
|
||||||
|
- New: An event can be assigned to several users.
|
||||||
|
- New: Can filter events on a group of users.
|
||||||
|
- New: Can filter events of a thirdparty.
|
||||||
|
- New: Onto event summary of elements, end date and status are visible.
|
||||||
|
- New: Split Agenda view (month, week, day) into different tabs.
|
||||||
|
- New: Add a view "per user" of agenda events (with different colors according to type of event).
|
||||||
|
- New: Each user can include its own external ics calendar into dolibarr agenda view.
|
||||||
|
- New: Add event FICHINTER_CLASSIFY_BILLED into list of possible events to
|
||||||
|
create an automatic event into agenda.
|
||||||
|
- New: Add new type of event (when type of events are used, not by default).
|
||||||
|
- New: Can disable predefined type of events.
|
||||||
|
- New: Form to add a photo is immediatly available on photo page if
|
||||||
|
permissions are ok (save one click per photo to add).
|
||||||
|
- New: Add option PRODUCT_MAX_VISIBLE_PHOTO to limit number of photos
|
||||||
|
shown on main product card.
|
||||||
|
- New: Add country into table of thirdparties type. This will allow to provide
|
||||||
|
a list of thirdparty types specific to a country (like argentina that
|
||||||
|
need type A or B).
|
||||||
|
- New: Can force a specific bank account onto an invoice/order.
|
||||||
|
- New: Home page of project area shows list of draft project (like other main page).
|
||||||
|
- New: Can search on project ref or string from project main page (like other main page).
|
||||||
|
- New: First change to match accessibility rules: http://www.w3.org/TR/WCAG10-HTML-TECHS/
|
||||||
|
Differentiate text and img.
|
||||||
|
Use label into quick search form.
|
||||||
|
Use accesskey on form search.
|
||||||
|
- New: Intervention documents are now available in ECM module.
|
||||||
|
- New: Add attachments on user card + in ECM module.
|
||||||
|
- New: Can add __PROJECT_REF__ and __TIHRPARTY_NAME__ into email topic or content template.
|
||||||
|
- New: [ task #1204 ] add Numering contrat module free (like leopard in product module).
|
||||||
|
- New: [ task #712 ] Add warning when creating invoice from proposal or order, when there is already one invoice.
|
||||||
|
- New: Enable supplier price log table.
|
||||||
|
- New: [ task #1204 ] add a supplier reference to contract.
|
||||||
|
- New: [ task #1218 ] Can drag and drop an event from calendar to change its day.
|
||||||
|
- New: Optimize size of image static resources.
|
||||||
|
- New: Add hourly and daily amount on user card. Add weekly working hours and salary on user card.
|
||||||
|
- New: Content of predefined email come firstly from table llx_c_email_template, then translation key.
|
||||||
|
- New: Add option MAIN_GENERATE_INVOICES_WITH_PICTURE to show picture
|
||||||
|
onto PDF like MAIN_GENERATE_PROPOSALS_WITH_PICTURE dir for proposals.
|
||||||
|
- New: Add more search field in list of cheque deposits.
|
||||||
|
- New: Add feature to order to invoice on supplier part.
|
||||||
|
- New : Use of MAIN_USE_FILECACHE_EXPORT_EXCEL_DIR to use disk cache for big excel export.
|
||||||
|
- New: Direct invoice creation from predefined invoice.
|
||||||
|
- New: Add dunning into accountancy report.
|
||||||
|
- New: Add favorite button into country dictionary to put value on top select list
|
||||||
|
- Upgrade phpexcel lib to 1.7.8
|
||||||
|
- New : Use of MAIN_USE_FILECACHE_EXPORT_EXCEL_DIR to use disk cache for big excel export.
|
||||||
|
- New : Option on extrafields to have them always editable regardless of the document status.
|
||||||
|
- New : New module PrintIPP to print without opening document is available as stable.
|
||||||
|
- Fix: [ bug #1487 ] PAYMENT_DELETE trigger does not intercept trigger action
|
||||||
|
- Fix: [ bug #1470, #1472, #1473] User trigger problem
|
||||||
|
- Fix: [ bug #1489, #1491 ] Intervention trigger problem
|
||||||
|
- Fix: [ bug #1492, #1493 ] Member trigger problem
|
||||||
|
- Fix: [ bug #1474, #1475 ] Contract trigger problem
|
||||||
|
- Fix: [ bug #1496 ] ACTION_DELETE trigger does not show trigger error
|
||||||
|
- Fix: [ bug #1494 ] CATEGORY_CREATE and CATEGORY_MODIFY triggers do not intercept trigger action
|
||||||
|
- Fix: [ bug #1502 ] DON_CREATE trigger does not intercept trigger action
|
||||||
|
- Fix: [ bug #1505, #1504] Project trigger problem
|
||||||
|
- Fix: [ bug #1463, #1464 ] Proposal triggers problem
|
||||||
|
- Fix: [ bug #1498, #1499 ] Shipment/Delivery triggers problem
|
||||||
|
- Fix: [ bug #1465, #1466 ] Product triggers problem
|
||||||
|
- Fix: [ bug #1508 ] STOCK_MOVEMENT does not show trigger error message
|
||||||
|
- Fix: [ bug #1501 ] DEPLACEMENT_CREATE trigger do not intercept trigger action
|
||||||
|
- Fix: [ bug #1506, #1507 ] ECM trigger error problem
|
||||||
|
- Fix: [ bug #1469 ] Triggers CONTACT_MODIFY and CONTACT_DELETE duplicates error message
|
||||||
|
- Fix: [ bug #1537 ] Difference between societe.nom and adherent.societe.
|
||||||
|
- Fix: [ bug #1535 ] Supplier invoice Extrafields are not shown
|
||||||
|
- Fix: datepicker first day of week can be monday by setting into display setup
|
||||||
|
|
||||||
|
For users, new experimental module (need to set feature level of instance to experimental to see them):
|
||||||
|
- New: Module Accounting Expert to manage accountancy
|
||||||
|
Special Thanks to developpers :
|
||||||
|
Olivier Geffroy
|
||||||
|
Alexandre Spangaro
|
||||||
|
Ari Elbaz
|
||||||
|
Florian Henry
|
||||||
|
Juanjo Menent
|
||||||
|
And to the contributors :
|
||||||
|
Jeff Info 2000 euros
|
||||||
|
Nord Anim 120 euros
|
||||||
|
Hydroflex 120 euros
|
||||||
|
Asysteo 120 euros
|
||||||
|
Fournisseur médical 120 euros
|
||||||
|
- Removed: unmaintained OScommerce module
|
||||||
|
|
||||||
|
For translators:
|
||||||
|
- Update language files.
|
||||||
|
- New: When a translation is not available we always jump to en_US and only en_US.
|
||||||
|
|
||||||
|
For developers:
|
||||||
|
- New: Add a css style "cursorpointer".
|
||||||
|
- New: Select list of users can return user into hierarchy.
|
||||||
|
- New: getBrowserInfo can return type of layout of browser (classic/phone/tablet)
|
||||||
|
- New: Add hook "searchAgendaFrom" and "beforePDFCreation".
|
||||||
|
- New: Add trigger DON_UPDATE, DON_DELETE
|
||||||
|
- New: Add country iso code on 3 chars into table of countries.
|
||||||
|
- Qual: Removed hard coded rowid into data init of table llx_c_action_trigger.
|
||||||
|
- LINEBILL_DELETE, LINK_DELETE, ORDER_SUPPLIER_DELETE, RESOURCE_DELETE trigger called before SQL delete
|
||||||
|
- New: [ Task #1481 ] Add trigger BILL_SUPPLIER_UPDATE.
|
||||||
|
- New: [ Task #1495 ] Add trigger LINECONTRACT_CREATE.
|
||||||
|
- New: Added hook "formConfirm" and "doActions" for supplier invoice card.
|
||||||
|
- New: [ task #1511, #1426 ] Added hook "doActions" for supplier card and supplier order card.
|
||||||
|
- New: renamed table llx_c_pays to llx_c_country & libelle field to label.
|
||||||
|
- New: Added hook "formConfirm" and "doActions" for fichinter card
|
||||||
|
- New: Can search list of thirdparties from web service on part of name.
|
||||||
|
- New: Function getCurrencyAmount is marked as deprecated. Use function price to output a price
|
||||||
|
including currency symbol.
|
||||||
|
- Qual: Renamed table llx_c_civilite into llx_c_civility,
|
||||||
|
field civilite into label in the same table,
|
||||||
|
and field civilite into civility in other table.
|
||||||
|
- Qual: Renamed all files & links "liste.php" into "list.php".
|
||||||
|
- Qual: Renamed all files & links "fiche.php" into "card.php".
|
||||||
|
- Qual: Replace all constants COMPTA_* by ACCOUNTING_*.
|
||||||
|
- Qual: Replace all constants ACCOUNTINGEX_* by ACCOUNTING_* to simplify migration of the module
|
||||||
|
|
||||||
|
WARNING: Following changes may create regression for some external modules, but was necessary to make
|
||||||
|
Dolibarr better:
|
||||||
|
|
||||||
|
- If you can't see trips and expenses records, check that you have the new permission "read all
|
||||||
|
trips and expenses".
|
||||||
|
- Deprecated module "oscommerce" were removed.
|
||||||
|
- Changed the way parameters are provided to scripts sync_xxx_ldap2dolibarr.php
|
||||||
|
- Some field into database were renamed from "libelle" to "label".
|
||||||
|
- Table llx_c_pays were renamed into llx_c_country.
|
||||||
|
- Triggers *_BUILDDOC are removed. Building a doc is not a business event. For action after
|
||||||
|
creation of a pdf or odt, hook "afterPDFCreation" or "afterODTCreation" must be used instead.
|
||||||
|
- A lot of pages called fiche.php were renamed into card.php
|
||||||
|
- A lot of pages called liste.php were renamed into list.php
|
||||||
|
- If you used warehouse/stock module, recheck setup of stock increase/decrease rules of the
|
||||||
|
warehouse module and your Point Of Sale module if you use one.
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 3.6.2 compared to 3.6.1 *****
|
***** ChangeLog for 3.6.2 compared to 3.6.1 *****
|
||||||
- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice.
|
- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice.
|
||||||
@ -109,6 +271,9 @@ For users:
|
|||||||
- Fix: Add actions events not implemented.
|
- Fix: Add actions events not implemented.
|
||||||
- Fix: Price min of composition is not supplier price min by quantity.
|
- Fix: Price min of composition is not supplier price min by quantity.
|
||||||
- Fix: [ bug #1356 ] Bank accountancy number is limited to 8 numbers.
|
- Fix: [ bug #1356 ] Bank accountancy number is limited to 8 numbers.
|
||||||
|
- Fix: [ bug #1439 ] impossible to remove a a translation (multilanguage-feature)
|
||||||
|
- New: If multilangue is enabled, mail (from propal, invoice, etc...) message is pre-defaulted in Customer language
|
||||||
|
- Fix: [ bug #1459 ] _ADD_CONTACT and _DEL_CONTACT triggers do not intercept insertion when reported an error
|
||||||
- Fix: [ bug #1478 ] BILL_PAYED trigger action does not intercept failure under some circumstances
|
- Fix: [ bug #1478 ] BILL_PAYED trigger action does not intercept failure under some circumstances
|
||||||
- Fix: [ bug #1479 ] Several customer invoice triggers do not intercept trigger action
|
- Fix: [ bug #1479 ] Several customer invoice triggers do not intercept trigger action
|
||||||
- Fix: [ bug #1477 ] Several customer invoice triggers do not show trigger error messages
|
- Fix: [ bug #1477 ] Several customer invoice triggers do not show trigger error messages
|
||||||
@ -136,6 +301,8 @@ For developers:
|
|||||||
- New: A module can disable a standard ECM view.
|
- New: A module can disable a standard ECM view.
|
||||||
- New: Add multilang support into product webservice.
|
- New: Add multilang support into product webservice.
|
||||||
- New: Add hooks on project card page.
|
- New: Add hooks on project card page.
|
||||||
|
- New: Add call_trigger method on CommonObject class. So new trigger call within object is just :
|
||||||
|
$result = $this->call_trigger($trigger_name, $user)
|
||||||
|
|
||||||
WARNING: Following change may create regression for some external modules, but was necessary to make
|
WARNING: Following change may create regression for some external modules, but was necessary to make
|
||||||
Dolibarr better:
|
Dolibarr better:
|
||||||
@ -143,16 +310,19 @@ Dolibarr better:
|
|||||||
- The deprecated way (with 4 parameters) to declare a new tab into a module descriptor file has been
|
- The deprecated way (with 4 parameters) to declare a new tab into a module descriptor file has been
|
||||||
removed. You must now use the 6 parameters way. See file modMyModule.class.php for example.
|
removed. You must now use the 6 parameters way. See file modMyModule.class.php for example.
|
||||||
- Remove the javascript function ac_delay() that is not used anymore by core code.
|
- Remove the javascript function ac_delay() that is not used anymore by core code.
|
||||||
- Properties "dictionnaries" into module descriptor files has been renamed into "dictionaries".
|
- Properties "dictionnaries" into module descriptor files have been renamed into "dictionaries".
|
||||||
- Method form->select_currency() has been removed. Use instead print form->selectCurrency().
|
- Method form->select_currency() has been removed. Use instead print form->selectCurrency().
|
||||||
- Method form->select_methodes_commande() has been renamed into english name selectInputMethod().
|
- Method form->select_methodes_commande() has been renamed into english name selectInputMethod().
|
||||||
- The following hooks are now 'addreplace' hooks: "formCreateThirdpartyOptions"
|
- The following hooks are now 'addreplace' hooks: "formCreateThirdpartyOptions"
|
||||||
So check that return value is 0 to keep default standard behaviour after hook or 1 to disable
|
So check that return value is 0 to keep default standard behaviour after hook, or 1 to disable
|
||||||
default standard behaviour.
|
default standard behaviour.
|
||||||
- Properties "civilite_id" were renamed into "civility_id".
|
- Properties "civilite_id" were renamed into "civility_id".
|
||||||
- Remove add_photo_web() that is ot used anymore by core code.
|
- Remove add_photo_web() that is ot used anymore by core code.
|
||||||
|
|
||||||
|
|
||||||
|
***** ChangeLog for 3.5.7 compared to 3.5.6 *****
|
||||||
|
Fix: Paypal link were broken dur to SSL v3 closed.
|
||||||
|
|
||||||
***** ChangeLog for 3.5.6 compared to 3.5.5 *****
|
***** ChangeLog for 3.5.6 compared to 3.5.5 *****
|
||||||
Fix: Avoid missing class error for fetch_thirdparty method #1973
|
Fix: Avoid missing class error for fetch_thirdparty method #1973
|
||||||
Fix: Can't update phone_pro from web service
|
Fix: Can't update phone_pro from web service
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project name="dolibarr" default="hudson" basedir=".">
|
<project name="dolibarr" default="hudson" basedir=".">
|
||||||
|
fdfds
|
||||||
<!-- Exclude/ignore paths -->
|
<!-- Exclude/ignore paths -->
|
||||||
<property name="ignorepaths" value="${basedir}/htdocs/conf,${basedir}/htdocs/core/filemanagerdol,${basedir}/htdocs/includes" />
|
<property name="ignorepaths" value="${basedir}/htdocs/conf,${basedir}/htdocs/core/filemanagerdol,${basedir}/htdocs/includes" />
|
||||||
<property name="ignoreregexp" value="**/PEAR/*,**/NET/*,**/HTTP/*,**/zendgdata/*,**/reportico/*" />
|
<property name="ignoreregexp" value="**/PEAR/*,**/NET/*,**/HTTP/*,**/zendgdata/*,**/reportico/*" />
|
||||||
|
|||||||
@ -153,6 +153,9 @@ from origin/upstream and origin/pristine.
|
|||||||
|
|
||||||
* Into root dir, launch:
|
* Into root dir, launch:
|
||||||
> debian/get-orig-source.sh
|
> debian/get-orig-source.sh
|
||||||
|
If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VERIFY_HOSTNAME=0" to solve this.
|
||||||
|
|
||||||
|
* Some files are removed from archive by the get-orig-source.sh
|
||||||
|
|
||||||
* Staying into git root directory, run
|
* Staying into git root directory, run
|
||||||
> git-import-orig -vv ../tcpdf_x.y.z+dfsg.orig.tar.xz
|
> git-import-orig -vv ../tcpdf_x.y.z+dfsg.orig.tar.xz
|
||||||
@ -160,9 +163,9 @@ from origin/upstream and origin/pristine.
|
|||||||
Note: If there was errors solved manually, you may need to make a git commit
|
Note: If there was errors solved manually, you may need to make a git commit
|
||||||
|
|
||||||
* Add an entry into debian/changelog
|
* Add an entry into debian/changelog
|
||||||
> dch -v x.y.z-dsfg-1 "My comment" will add entry.
|
> dch -v x.y.z+dfsg-1 "My comment" will add entry.
|
||||||
For example: dch -v x.y.z-dsfg-1 "New upstream release." for a new version
|
For example: dch -v x.y.z+dfsg-1 "New upstream release." for a new version
|
||||||
Then modify changelog to replace "unstable" with "UNRELEASED".
|
Then modify changelog to replace "version" or "unstable" with "UNRELEASED".
|
||||||
|
|
||||||
Warning: Date must have format reported by "date -R"
|
Warning: Date must have format reported by "date -R"
|
||||||
Warning: Name and email must match value into debian/control file (Entry added here is used by next step).
|
Warning: Name and email must match value into debian/control file (Entry added here is used by next step).
|
||||||
@ -228,23 +231,29 @@ from origin/upstream and origin/pristine.
|
|||||||
|
|
||||||
* If new upstream is available onto sourceforge, launch:
|
* If new upstream is available onto sourceforge, launch:
|
||||||
> debian/get-orig-source.sh
|
> debian/get-orig-source.sh
|
||||||
|
If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VERIFY_HOSTNAME=0" to solve this.
|
||||||
|
|
||||||
* Edit tgz file to remove ckeditor and phpexcel and rename file into
|
* Edit tgz file to remove
|
||||||
dolibarr-x.y.z+dsfgw.tgz
|
- htdocs/includes/ckeditor
|
||||||
(x.y.z = version, w start from 1 and is increased for each new import)
|
- htdocs/includes/jquery/plugins/datatables/extras/TableTools/swf
|
||||||
|
- htdocs/includes/phpexcel
|
||||||
|
- htdocs/includes/tcpdf
|
||||||
|
And rename file into
|
||||||
|
dolibarr-x.y.z+dfsgw.tgz
|
||||||
|
(x.y.z = version, w start from 1 and is increased for each new git-import-orig already done)
|
||||||
|
|
||||||
* Staying into git root directory, run
|
* Staying into git root directory, run
|
||||||
> git-import-orig -vv ../dolibarr-x.y.z+dsfgw.tgz
|
> git-import-orig -vv ../dolibarr-x.y.z+dfsgw.tgz
|
||||||
and enter version when requested with format
|
and enter version when requested with format
|
||||||
x.y.z+dsfgw
|
x.y.z+dfsgw
|
||||||
(x.y.z = version, w start from 1 and is increased for each new import)
|
(x.y.z = version, w start from 1 and is increased for each new import)
|
||||||
|
|
||||||
Note: If there was errors solved manually after get-orig-sources.sh, you may need to make a git commit
|
Note: If there was errors solved manually after get-orig-sources.sh, you may need to make a git commit
|
||||||
|
|
||||||
* Add an entry into debian/changelog
|
* Add an entry into debian/changelog
|
||||||
> dch -v x.y.z-w "My comment" will add entry.
|
> dch -v x.y.z+dfsg-w "My comment" will add entry.
|
||||||
For example: dch -v x.y.z-w "New upstream release." for a new version (x.y.z = version, w start from 1 and increaed for each new import)
|
For example: dch -v x.y.z+dfsgw-1 "New upstream release." for a new version (x.y.z = version, w start from 1 and increaed for each new import)
|
||||||
Then modify changelog to replace "unstable" with "UNRELEASED".
|
Then modify changelog to replace "version" or "unstable" with "UNRELEASED".
|
||||||
Then check/modify also the user/date signature:
|
Then check/modify also the user/date signature:
|
||||||
- Date must have format reported by "date -R"
|
- Date must have format reported by "date -R"
|
||||||
- Name and email must match value into debian/control file (Entry added here is used by next step).
|
- Name and email must match value into debian/control file (Entry added here is used by next step).
|
||||||
|
|||||||
@ -1,13 +1,6 @@
|
|||||||
dolibarr (3.6.1-3) unstable; urgency=low
|
dolibarr (3.7.0-3) UNRELEASED; urgency=low
|
||||||
|
|
||||||
[ Laurent Destailleur (eldy) ]
|
[ Laurent Destailleur (eldy) ]
|
||||||
* New upstream release.
|
* New upstream release.
|
||||||
|
|
||||||
-- Laurent Destailleur (eldy) <eldy@users.sourceforge.net> Tue, 23 Sep 2014 12:00:00 +0100
|
-- Laurent Destailleur (eldy) <eldy@users.sourceforge.net> Tue, 21 Oct 2014 12:00:00 +0100
|
||||||
|
|
||||||
dolibarr (3.6.0-3) unstable; urgency=low
|
|
||||||
|
|
||||||
[ Laurent Destailleur (eldy) ]
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Laurent Destailleur (eldy) <eldy@users.sourceforge.net> Tue, 15 July 2014 12:00:00 +0100
|
|
||||||
@ -1,10 +1,9 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Scan for new official sources and download file
|
|
||||||
# run with debian/get-orig-source.sh [x.y.z]
|
|
||||||
|
|
||||||
tmpdir=$(mktemp -d)
|
tmpdir=$(mktemp -d)
|
||||||
echo "tmpdir = $tmpdir"
|
|
||||||
|
|
||||||
|
|
||||||
|
# Download source file
|
||||||
if [ -n "$1" ]; then
|
if [ -n "$1" ]; then
|
||||||
uscan_opts="--download-version=$1"
|
uscan_opts="--download-version=$1"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -17,9 +17,9 @@
|
|||||||
; ----- Change this -----
|
; ----- Change this -----
|
||||||
AppName=DoliWamp
|
AppName=DoliWamp
|
||||||
; DoliWamp-x.x.x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x
|
; DoliWamp-x.x.x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x
|
||||||
AppVerName=DoliWamp-3.6.1
|
AppVerName=DoliWamp-3.7.0-beta
|
||||||
; DoliWamp-x.x x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x
|
; DoliWamp-x.x x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x
|
||||||
OutputBaseFilename=DoliWamp-3.6.1
|
OutputBaseFilename=DoliWamp-3.7.0-beta
|
||||||
; ----- End of change
|
; ----- End of change
|
||||||
;OutputManifestFile=build\doliwampbuild.log
|
;OutputManifestFile=build\doliwampbuild.log
|
||||||
; Define full path from which all relative path are defined
|
; Define full path from which all relative path are defined
|
||||||
|
|||||||
@ -61,13 +61,17 @@ If you want to build/test package locally:
|
|||||||
|
|
||||||
- List of series are visible here: https://launchpad.net/dolibarr/+series
|
- List of series are visible here: https://launchpad.net/dolibarr/+series
|
||||||
|
|
||||||
# To update Dolibarr into launchpad (when repository for sources already exists)
|
# To update Dolibarr into launchpad (when remote repository for sources already exists)
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
|
# create local repository
|
||||||
cd bzr
|
cd bzr
|
||||||
bzr branch lp:~yourlogin/dolibarr/[dev|beta|stable]
|
bzr branch lp:~yourlogin/dolibarr/[develop|beta|stable] dolibarr-[dev|beta|stable]
|
||||||
cd dolibarr-[dev|beta|stable]
|
cd dolibarr-[dev|beta|stable]
|
||||||
|
# Update
|
||||||
|
bzr update
|
||||||
|
-- Update files here. Remove all and overwrite --
|
||||||
bzr status
|
bzr status
|
||||||
-- Update files here --
|
bzr add *
|
||||||
bzr commit -m "Description of change"
|
bzr commit -m "Description of change"
|
||||||
bzr push
|
bzr push
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,300 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
# \file build/makepack-dolibarrlang.pl
|
|
||||||
# \brief Package builder (tgz, zip, rpm, deb, exe)
|
|
||||||
# \author (c)2005 Laurent Destailleur <eldy@users.sourceforge.net>
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
use Cwd;
|
|
||||||
|
|
||||||
$PROJECT = "dolibarr";
|
|
||||||
|
|
||||||
@LISTETARGET = ("TGZ"); # Possible packages
|
|
||||||
%REQUIREMENTTARGET = ( # Tool requirement for each package
|
|
||||||
"TGZ" => "tar",
|
|
||||||
"ZIP" => "7z",
|
|
||||||
"EXE" => "makensis.exe"
|
|
||||||
);
|
|
||||||
%ALTERNATEPATH = (
|
|
||||||
"7z" => "7-ZIP",
|
|
||||||
"makensis.exe" => "NSIS"
|
|
||||||
);
|
|
||||||
|
|
||||||
use vars qw/ $REVISION $VERSION /;
|
|
||||||
$REVISION = '1.10';
|
|
||||||
$VERSION = "1.0 (build $REVISION)";
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
# MAIN
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
( $DIR = $0 ) =~ s/([^\/\\]+)$//;
|
|
||||||
( $PROG = $1 ) =~ s/\.([^\.]*)$//;
|
|
||||||
$Extension = $1;
|
|
||||||
$DIR ||= '.';
|
|
||||||
$DIR =~ s/([^\/\\])[\\\/]+$/$1/;
|
|
||||||
|
|
||||||
# Detect OS type
|
|
||||||
# --------------
|
|
||||||
if ( "$^O" =~ /linux/i || ( -d "/etc" && -d "/var" && "$^O" !~ /cygwin/i ) ) {
|
|
||||||
$OS = 'linux';
|
|
||||||
$CR = '';
|
|
||||||
}
|
|
||||||
elsif ( -d "/etc" && -d "/Users" ) { $OS = 'macosx'; $CR = ''; }
|
|
||||||
elsif ( "$^O" =~ /cygwin/i || "$^O" =~ /win32/i ) {
|
|
||||||
$OS = 'windows';
|
|
||||||
$CR = "\r";
|
|
||||||
}
|
|
||||||
if ( !$OS ) {
|
|
||||||
print "$PROG.$Extension was not able to detect your OS.\n";
|
|
||||||
print "Can't continue.\n";
|
|
||||||
print "$PROG.$Extension aborted.\n";
|
|
||||||
sleep 2;
|
|
||||||
exit 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Define buildroot
|
|
||||||
# ----------------
|
|
||||||
if ( $OS =~ /linux/ ) {
|
|
||||||
$TEMP = $ENV{"TEMP"} || $ENV{"TMP"} || "/tmp";
|
|
||||||
}
|
|
||||||
if ( $OS =~ /macos/ ) {
|
|
||||||
$TEMP = $ENV{"TEMP"} || $ENV{"TMP"} || "/tmp";
|
|
||||||
}
|
|
||||||
if ( $OS =~ /windows/ ) {
|
|
||||||
$TEMP = $ENV{"TEMP"} || $ENV{"TMP"} || "c:/temp";
|
|
||||||
$PROGPATH = $ENV{"ProgramFiles"};
|
|
||||||
}
|
|
||||||
if ( !$TEMP || !-d $TEMP ) {
|
|
||||||
print "Error: A temporary directory can not be find.\n";
|
|
||||||
print "Check that TEMP or TMP environment variable is set correctly.\n";
|
|
||||||
print "makepack-dolibarrlang.pl aborted.\n";
|
|
||||||
sleep 2;
|
|
||||||
exit 2;
|
|
||||||
}
|
|
||||||
$BUILDROOT = "$TEMP/dolibarr-buildroot";
|
|
||||||
|
|
||||||
my $copyalreadydone = 0;
|
|
||||||
my $batch = 0;
|
|
||||||
|
|
||||||
print "Makepack langs version $VERSION\n";
|
|
||||||
print "Enter language code to package (en_US, fr_FR, ...) : ";
|
|
||||||
$PROJECT = <STDIN>;
|
|
||||||
chomp($PROJECT);
|
|
||||||
|
|
||||||
# Ask and set version $MAJOR and $MINOR
|
|
||||||
print "Enter value for version: ";
|
|
||||||
$PROJVERSION = <STDIN>;
|
|
||||||
chomp($PROJVERSION);
|
|
||||||
( $MAJOR, $MINOR ) = split( /\./, $PROJVERSION, 2 );
|
|
||||||
if ( $MINOR eq '' ) {
|
|
||||||
print "Enter value for minor version: ";
|
|
||||||
$MINOR = <STDIN>;
|
|
||||||
chomp($MINOR);
|
|
||||||
}
|
|
||||||
|
|
||||||
$FILENAME = "$PROJECT";
|
|
||||||
$FILENAMETGZ = "lang_$PROJECT-$MAJOR.$MINOR";
|
|
||||||
if ( -d "/usr/src/redhat" ) {
|
|
||||||
|
|
||||||
# redhat
|
|
||||||
$RPMDIR = "/usr/src/redhat";
|
|
||||||
}
|
|
||||||
if ( -d "/usr/src/RPM" ) {
|
|
||||||
|
|
||||||
# mandrake
|
|
||||||
$RPMDIR = "/usr/src/RPM";
|
|
||||||
}
|
|
||||||
|
|
||||||
$SOURCE = "$DIR/../../dolibarr";
|
|
||||||
$DESTI = "$SOURCE/build";
|
|
||||||
|
|
||||||
# Choose package targets
|
|
||||||
#-----------------------
|
|
||||||
$target = "ZIP"; # Les langs sont au format zip
|
|
||||||
if ($target) {
|
|
||||||
$CHOOSEDTARGET{ uc($target) } = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
my $found = 0;
|
|
||||||
my $NUM_SCRIPT;
|
|
||||||
while ( !$found ) {
|
|
||||||
my $cpt = 0;
|
|
||||||
printf( " %d - %3s (%s)\n",
|
|
||||||
$cpt, "All", "Need " . join( ",", values %REQUIREMENTTARGET ) );
|
|
||||||
foreach my $target (@LISTETARGET) {
|
|
||||||
$cpt++;
|
|
||||||
printf( " %d - %3s (%s)\n",
|
|
||||||
$cpt, $target, "Need " . $REQUIREMENTTARGET{$target} );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Are asked to select the file to move
|
|
||||||
print "Choose one package number or several separated with space: ";
|
|
||||||
$NUM_SCRIPT = <STDIN>;
|
|
||||||
chomp($NUM_SCRIPT);
|
|
||||||
if ( $NUM_SCRIPT =~ s/-//g ) {
|
|
||||||
|
|
||||||
# Do not do copy
|
|
||||||
$copyalreadydone = 1;
|
|
||||||
}
|
|
||||||
if ( $NUM_SCRIPT !~ /^[0-$cpt\s]+$/ ) {
|
|
||||||
print "This is not a valid package number list.\n";
|
|
||||||
$found = 0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$found = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
print "\n";
|
|
||||||
if ($NUM_SCRIPT) {
|
|
||||||
foreach my $num ( split( /\s+/, $NUM_SCRIPT ) ) {
|
|
||||||
$CHOOSEDTARGET{ $LISTETARGET[ $num - 1 ] } = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
foreach my $key (@LISTETARGET) {
|
|
||||||
$CHOOSEDTARGET{$key} = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test if requirement is ok
|
|
||||||
#--------------------------
|
|
||||||
foreach my $target ( keys %CHOOSEDTARGET ) {
|
|
||||||
foreach my $req ( split( /[,\s]/, $REQUIREMENTTARGET{$target} ) ) {
|
|
||||||
|
|
||||||
# Test
|
|
||||||
print "Test requirement for target $target: Search '$req'... ";
|
|
||||||
$ret = `"$req" 2>&1`;
|
|
||||||
$coderetour = $?;
|
|
||||||
$coderetour2 = $coderetour >> 8;
|
|
||||||
if (
|
|
||||||
$coderetour != 0
|
|
||||||
&& ( ( $coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i )
|
|
||||||
|| ( $coderetour2 == 127 && $OS !~ /windows/ ) )
|
|
||||||
&& $PROGPATH
|
|
||||||
)
|
|
||||||
{
|
|
||||||
|
|
||||||
# Not found error, we try in PROGPATH
|
|
||||||
$ret = `"$PROGPATH/$ALTERNATEPATH{$req}/$req\" 2>&1`;
|
|
||||||
$coderetour = $?;
|
|
||||||
$coderetour2 = $coderetour >> 8;
|
|
||||||
$REQUIREMENTTARGET{$target} = "$PROGPATH/$ALTERNATEPATH{$req}/$req";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
|
||||||
$coderetour != 0
|
|
||||||
&& ( ( $coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i )
|
|
||||||
|| ( $coderetour2 == 127 && $OS !~ /windows/ ) )
|
|
||||||
)
|
|
||||||
{
|
|
||||||
|
|
||||||
# Not found error
|
|
||||||
print
|
|
||||||
"Not found\nCan't build target $target. Requirement '$req' not found in PATH\n";
|
|
||||||
$CHOOSEDTARGET{$target} = -1;
|
|
||||||
last;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
# Pas erreur ou erreur autre que programme absent
|
|
||||||
print " Found " . $REQUIREMENTTARGET{$target} . "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print "\n";
|
|
||||||
|
|
||||||
# Check if there is at least on target to build
|
|
||||||
#----------------------------------------------
|
|
||||||
$nboftargetok = 0;
|
|
||||||
foreach my $target ( keys %CHOOSEDTARGET ) {
|
|
||||||
if ( $CHOOSEDTARGET{$target} < 0 ) { next; }
|
|
||||||
$nboftargetok++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($nboftargetok) {
|
|
||||||
|
|
||||||
# Update buildroot
|
|
||||||
#-----------------
|
|
||||||
if ( !$copyalreadydone ) {
|
|
||||||
print "Delete directory $BUILDROOT\n";
|
|
||||||
$ret = `rm -fr "$BUILDROOT"`;
|
|
||||||
mkdir "$BUILDROOT";
|
|
||||||
mkdir "$BUILDROOT/htdocs";
|
|
||||||
mkdir "$BUILDROOT/htdocs/langs";
|
|
||||||
mkdir "$BUILDROOT/htdocs/langs/$PROJECT";
|
|
||||||
|
|
||||||
print "Copy $SOURCE into $BUILDROOT\n";
|
|
||||||
mkdir "$BUILDROOT";
|
|
||||||
$ret =
|
|
||||||
`cp -pr "$SOURCE/htdocs/langs/$PROJECT" "$BUILDROOT/htdocs/langs"`;
|
|
||||||
}
|
|
||||||
print "Clean $BUILDROOT\n";
|
|
||||||
$ret =
|
|
||||||
`rm -fr $BUILDROOT/htdocs/langs/$PROJECT/Thumbs.db $BUILDROOT/htdocs/langs/$PROJECT/*/Thumbs.db $BUILDROOT/htdocs/langs/$PROJECT/*/*/Thumbs.db $BUILDROOT/htdocs/langs/$PROJECT/*/*/*/Thumbs.db`;
|
|
||||||
$ret =
|
|
||||||
`rm -fr $BUILDROOT/htdocs/langs/$PROJECT/CVS* $BUILDROOT/htdocs/langs/$PROJECT/*/CVS* $BUILDROOT/htdocs/langs/$PROJECT/*/*/CVS* $BUILDROOT/htdocs/langs/$PROJECT/*/*/*/CVS* $BUILDROOT/htdocs/langs/$PROJECT/*/*/*/*/CVS* $BUILDROOT/htdocs/langs/$PROJECT/*/*/*/*/*/CVS*`;
|
|
||||||
|
|
||||||
# Build package for each target
|
|
||||||
#------------------------------
|
|
||||||
foreach my $target ( keys %CHOOSEDTARGET )
|
|
||||||
{
|
|
||||||
if ( $CHOOSEDTARGET{$target} < 0 ) { next; }
|
|
||||||
|
|
||||||
print "\nBuild package for target $target\n";
|
|
||||||
|
|
||||||
if ( $target eq 'TGZ' )
|
|
||||||
{
|
|
||||||
unlink $FILENAMETGZ . tgz;
|
|
||||||
|
|
||||||
# unlink $BUILDROOT/$FILENAMETGZ.tgz;
|
|
||||||
print "Compress $BUILDROOT/htdocs into $FILENAMETGZ.tgz...\n";
|
|
||||||
$cmd =
|
|
||||||
"tar --exclude-vcs --exclude-from \"$DESTI/tgz/tar.exclude\" --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$FILENAMETGZ.tgz\" htdocs";
|
|
||||||
$ret = `$cmd`;
|
|
||||||
|
|
||||||
# $cmd="tar --exclude-vcs --exclude-from \"$DESTI/tgz/tar.exclude\" --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$BUILDROOT/$FILENAMETGZ.tgz\" htdocs\n";
|
|
||||||
# $ret=`$cmd`;
|
|
||||||
if ( $OS =~ /windows/i ) {
|
|
||||||
print "Move $FILENAMETGZ.tgz to $DESTI/$FILENAMETGZ.tgz\n";
|
|
||||||
$ret = `mv "$FILENAMETGZ.tgz" "$DESTI/$FILENAMETGZ.tgz"`;
|
|
||||||
|
|
||||||
# $ret=`mv "$BUILDROOT/$FILENAMETGZ.tgz" "$DESTI/$FILENAMETGZ.tgz"`;
|
|
||||||
}
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( $target eq 'ZIP' )
|
|
||||||
{
|
|
||||||
unlink $FILENAMEZIP . zip;
|
|
||||||
print "Compress $FILENAMETGZ into $FILENAMEZIP.zip...\n";
|
|
||||||
chdir("$BUILDROOT");
|
|
||||||
|
|
||||||
#print "cd $BUILDROOTNT & 7z a -r -tzip -mx $BUILDROOT/$FILENAMEZIP.zip $FILENAMETGZ\\*.*\n";
|
|
||||||
#$ret=`cd $BUILDROOTNT & 7z a -r -tzip -mx $BUILDROOT/$FILENAMEZIP.zip $FILENAMETGZ\\*.*`;
|
|
||||||
$ret =
|
|
||||||
`7z a -r -tzip -mx $BUILDROOT/$FILENAMEZIP.zip $FILENAMETGZ\\*.*`;
|
|
||||||
print "Move $FILENAMEZIP.zip to $DESTI\n";
|
|
||||||
rename( "$BUILDROOT/$FILENAMEZIP.zip", "$DESTI/$FILENAMEZIP.zip" );
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print "\n----- Summary -----\n";
|
|
||||||
foreach my $target ( keys %CHOOSEDTARGET ) {
|
|
||||||
if ( $CHOOSEDTARGET{$target} < 0 ) {
|
|
||||||
print "Package $target not built (bad requirement).\n";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
print "Package $target built succeessfully in $DESTI\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( !$btach ) {
|
|
||||||
print "\nPress key to finish...";
|
|
||||||
my $WAITKEY = <STDIN>;
|
|
||||||
}
|
|
||||||
|
|
||||||
0;
|
|
||||||
@ -29,12 +29,18 @@ To submit a snapshot for building, we should have a service file with content
|
|||||||
</services>
|
</services>
|
||||||
|
|
||||||
How to have such a service file created automatically ?
|
How to have such a service file created automatically ?
|
||||||
Click on "Add file", then select mode "Upload From: Remote URL"
|
|
||||||
Enter the Remote URL that should looks like this: http://www.dolibarr.org/files/stable/package_rpm_generic/dolibarr-x.y.v-3.src.rpm
|
|
||||||
|
|
||||||
Then add into advanded - attributes
|
Go into project you want to update. It mught be:
|
||||||
|
- openSUSE Build Service > Projects > Application:ERP:Dolibarr > dolibarr
|
||||||
|
- or your private project
|
||||||
|
|
||||||
|
Once logged, click on "Add file" in section "Source Files", then select mode "Upload From: Remote URL"
|
||||||
|
Keep empty for "Filename", choose "Remote URL" and enter into last field, URL that should looks like this:
|
||||||
|
http://www.dolibarr.org/files/stable/package_rpm_generic/dolibarr-x.y.v-0.3.src.rpm
|
||||||
|
|
||||||
|
Then add into Advanded - Attributes
|
||||||
OBS:Screenshots http://www.dolibarr.org/images/dolibarr_screenshot1.png
|
OBS:Screenshots http://www.dolibarr.org/images/dolibarr_screenshot1.png
|
||||||
OBS:QualityCategory Testing
|
OBS:QualityCategory Stable|Testing|Development|Private
|
||||||
|
|
||||||
|
|
||||||
# Move project into official directory
|
# Move project into official directory
|
||||||
|
|||||||
@ -5,4 +5,3 @@
|
|||||||
//
|
//
|
||||||
// This file will be filled by installer
|
// This file will be filled by installer
|
||||||
//
|
//
|
||||||
?>
|
|
||||||
@ -162,7 +162,6 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/asterisk
|
%_datadir/dolibarr/htdocs/asterisk
|
||||||
%_datadir/dolibarr/htdocs/barcode
|
%_datadir/dolibarr/htdocs/barcode
|
||||||
%_datadir/dolibarr/htdocs/bookmarks
|
%_datadir/dolibarr/htdocs/bookmarks
|
||||||
%_datadir/dolibarr/htdocs/boutique
|
|
||||||
%_datadir/dolibarr/htdocs/cashdesk
|
%_datadir/dolibarr/htdocs/cashdesk
|
||||||
%_datadir/dolibarr/htdocs/categories
|
%_datadir/dolibarr/htdocs/categories
|
||||||
%_datadir/dolibarr/htdocs/comm
|
%_datadir/dolibarr/htdocs/comm
|
||||||
@ -333,6 +332,9 @@ fi
|
|||||||
|
|
||||||
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
|
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 29 2014 Laurent Destailleur 3.7.0-0.3
|
||||||
|
- Upstream release
|
||||||
|
|
||||||
* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3
|
* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
|||||||
@ -242,7 +242,6 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/asterisk
|
%_datadir/dolibarr/htdocs/asterisk
|
||||||
%_datadir/dolibarr/htdocs/barcode
|
%_datadir/dolibarr/htdocs/barcode
|
||||||
%_datadir/dolibarr/htdocs/bookmarks
|
%_datadir/dolibarr/htdocs/bookmarks
|
||||||
%_datadir/dolibarr/htdocs/boutique
|
|
||||||
%_datadir/dolibarr/htdocs/cashdesk
|
%_datadir/dolibarr/htdocs/cashdesk
|
||||||
%_datadir/dolibarr/htdocs/categories
|
%_datadir/dolibarr/htdocs/categories
|
||||||
%_datadir/dolibarr/htdocs/comm
|
%_datadir/dolibarr/htdocs/comm
|
||||||
@ -569,6 +568,9 @@ fi
|
|||||||
|
|
||||||
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
|
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 29 2014 Laurent Destailleur 3.7.0-0.3
|
||||||
|
- Upstream release
|
||||||
|
|
||||||
* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3
|
* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
|||||||
@ -159,7 +159,6 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/asterisk
|
%_datadir/dolibarr/htdocs/asterisk
|
||||||
%_datadir/dolibarr/htdocs/barcode
|
%_datadir/dolibarr/htdocs/barcode
|
||||||
%_datadir/dolibarr/htdocs/bookmarks
|
%_datadir/dolibarr/htdocs/bookmarks
|
||||||
%_datadir/dolibarr/htdocs/boutique
|
|
||||||
%_datadir/dolibarr/htdocs/cashdesk
|
%_datadir/dolibarr/htdocs/cashdesk
|
||||||
%_datadir/dolibarr/htdocs/categories
|
%_datadir/dolibarr/htdocs/categories
|
||||||
%_datadir/dolibarr/htdocs/comm
|
%_datadir/dolibarr/htdocs/comm
|
||||||
@ -338,6 +337,9 @@ fi
|
|||||||
|
|
||||||
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
|
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 29 2014 Laurent Destailleur 3.7.0-0.3
|
||||||
|
- Upstream release
|
||||||
|
|
||||||
* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3
|
* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
|||||||
@ -170,7 +170,6 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/asterisk
|
%_datadir/dolibarr/htdocs/asterisk
|
||||||
%_datadir/dolibarr/htdocs/barcode
|
%_datadir/dolibarr/htdocs/barcode
|
||||||
%_datadir/dolibarr/htdocs/bookmarks
|
%_datadir/dolibarr/htdocs/bookmarks
|
||||||
%_datadir/dolibarr/htdocs/boutique
|
|
||||||
%_datadir/dolibarr/htdocs/cashdesk
|
%_datadir/dolibarr/htdocs/cashdesk
|
||||||
%_datadir/dolibarr/htdocs/categories
|
%_datadir/dolibarr/htdocs/categories
|
||||||
%_datadir/dolibarr/htdocs/comm
|
%_datadir/dolibarr/htdocs/comm
|
||||||
@ -349,6 +348,9 @@ fi
|
|||||||
|
|
||||||
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
|
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 29 2014 Laurent Destailleur 3.7.0-0.3
|
||||||
|
- Upstream release
|
||||||
|
|
||||||
* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3
|
* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
|||||||
@ -24,6 +24,8 @@
|
|||||||
"ext-mcrypt": "*",
|
"ext-mcrypt": "*",
|
||||||
"ext-openssl": "*",
|
"ext-openssl": "*",
|
||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"ext-soap": "*"
|
"ext-soap": "*",
|
||||||
|
"ext-zip": "*",
|
||||||
|
"ext-xml": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,15 +6,22 @@
|
|||||||
<exclude-pattern>*/conf.php</exclude-pattern>
|
<exclude-pattern>*/conf.php</exclude-pattern>
|
||||||
<exclude-pattern>*/includes/*</exclude-pattern>
|
<exclude-pattern>*/includes/*</exclude-pattern>
|
||||||
<exclude-pattern>*/documents/*</exclude-pattern>
|
<exclude-pattern>*/documents/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/dev/vagrant/*</exclude-pattern>
|
||||||
<exclude-pattern>*/custom/*</exclude-pattern>
|
<exclude-pattern>*/custom/*</exclude-pattern>
|
||||||
<exclude-pattern>*/nltechno*</exclude-pattern>
|
<exclude-pattern>*/nltechno*</exclude-pattern>
|
||||||
|
|
||||||
<!-- List of all tests -->
|
<!-- List of all tests -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Rules from Internal Standard -->
|
||||||
|
|
||||||
<rule ref="Internal.NoCodeFound">
|
<rule ref="Internal.NoCodeFound">
|
||||||
<severity>0</severity>
|
<severity>0</severity>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Rules from Generic Standard -->
|
||||||
|
|
||||||
<rule ref="Generic.CodeAnalysis.EmptyStatement" />
|
<rule ref="Generic.CodeAnalysis.EmptyStatement" />
|
||||||
|
|
||||||
<rule ref="Generic.CodeAnalysis.EmptyStatement.NotAllowed">
|
<rule ref="Generic.CodeAnalysis.EmptyStatement.NotAllowed">
|
||||||
@ -24,9 +31,6 @@
|
|||||||
<severity>0</severity>
|
<severity>0</severity>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<!-- The closing ?> tag MUST be omitted from files containing only PHP. -->
|
|
||||||
<!-- <rule ref="Zend.Files.ClosingTag"/> -->
|
|
||||||
|
|
||||||
<!-- <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" /> -->
|
<!-- <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" /> -->
|
||||||
|
|
||||||
<rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall" />
|
<rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall" />
|
||||||
@ -105,7 +109,7 @@
|
|||||||
<rule ref="Generic.Metrics.CyclomaticComplexity">
|
<rule ref="Generic.Metrics.CyclomaticComplexity">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="complexity" value="80" />
|
<property name="complexity" value="80" />
|
||||||
<property name="absoluteComplexity" value="200" />
|
<property name="absoluteComplexity" value="250" />
|
||||||
</properties>
|
</properties>
|
||||||
</rule>
|
</rule>
|
||||||
<rule ref="Generic.Metrics.NestingLevel">
|
<rule ref="Generic.Metrics.NestingLevel">
|
||||||
@ -153,6 +157,10 @@
|
|||||||
<!-- Disabled as this does not support tab -->
|
<!-- Disabled as this does not support tab -->
|
||||||
<!-- <rule ref="Generic.WhiteSpace.ScopeIndent" /> -->
|
<!-- <rule ref="Generic.WhiteSpace.ScopeIndent" /> -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Rules from PEAR Standard -->
|
||||||
|
|
||||||
<rule ref="PEAR.Classes.ClassDeclaration" />
|
<rule ref="PEAR.Classes.ClassDeclaration" />
|
||||||
|
|
||||||
<!-- Check for duplicate class names -->
|
<!-- Check for duplicate class names -->
|
||||||
@ -162,6 +170,40 @@
|
|||||||
<rule ref="PEAR.Commenting.ClassComment.MissingTag">
|
<rule ref="PEAR.Commenting.ClassComment.MissingTag">
|
||||||
<severity>0</severity>
|
<severity>0</severity>
|
||||||
</rule>
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.ClassComment.Missing@authorTag">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.ClassComment.Missing@categoryTag">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.ClassComment.Missing@licenseTag">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.ClassComment.Missing@linkTag">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.ClassComment.Missing@packageTag">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<!-- TODO Remove this and fix reported errors -->
|
||||||
|
<rule ref="PEAR.Commenting.ClassComment.Missing">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.FunctionComment.ReturnNotRequired">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Commenting.FunctionComment.Missing">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<rule ref="PEAR.Commenting.FileComment" />
|
<rule ref="PEAR.Commenting.FileComment" />
|
||||||
@ -219,6 +261,24 @@
|
|||||||
<rule ref="PEAR.Functions.FunctionCallSignature.Indent">
|
<rule ref="PEAR.Functions.FunctionCallSignature.Indent">
|
||||||
<severity>0</severity>
|
<severity>0</severity>
|
||||||
</rule>
|
</rule>
|
||||||
|
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceBeforeOpenBracket">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterCloseBracket">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
<rule ref="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
|
|
||||||
<rule ref="PEAR.Functions.ValidDefaultValue" />
|
<rule ref="PEAR.Functions.ValidDefaultValue" />
|
||||||
|
|
||||||
@ -236,6 +296,10 @@
|
|||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule ref="PEAR.NamingConventions.ValidFunctionName" />
|
<rule ref="PEAR.NamingConventions.ValidFunctionName" />
|
||||||
|
|
||||||
|
<rule ref="PEAR.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore">
|
||||||
|
<severity>0</severity>
|
||||||
|
</rule>
|
||||||
<rule ref="PEAR.NamingConventions.ValidFunctionName.FunctionNameInvalid">
|
<rule ref="PEAR.NamingConventions.ValidFunctionName.FunctionNameInvalid">
|
||||||
<severity>0</severity>
|
<severity>0</severity>
|
||||||
</rule>
|
</rule>
|
||||||
@ -246,13 +310,13 @@
|
|||||||
<rule ref="PEAR.NamingConventions.ValidFunctionName.FunctionNoCaptial">
|
<rule ref="PEAR.NamingConventions.ValidFunctionName.FunctionNoCaptial">
|
||||||
<severity>0</severity>
|
<severity>0</severity>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule ref="PEAR.NamingConventions.ValidFunctionName.NotCamelCaps">
|
<rule ref="PEAR.NamingConventions.ValidFunctionName.NotCamelCaps">
|
||||||
<severity>0</severity>
|
<severity>0</severity>
|
||||||
</rule>
|
</rule>
|
||||||
<rule ref="PEAR.NamingConventions.ValidFunctionName.PrivateNoUnderscore">
|
<rule ref="PEAR.NamingConventions.ValidFunctionName.PrivateNoUnderscore">
|
||||||
<severity>0</severity>
|
<severity>0</severity>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule ref="PEAR.NamingConventions.ValidVariableName" />
|
<rule ref="PEAR.NamingConventions.ValidVariableName" />
|
||||||
|
|
||||||
<rule ref="PEAR.WhiteSpace.ObjectOperatorIndent" />
|
<rule ref="PEAR.WhiteSpace.ObjectOperatorIndent" />
|
||||||
@ -270,4 +334,10 @@
|
|||||||
<!-- Already found as a Generic rule -->
|
<!-- Already found as a Generic rule -->
|
||||||
<!-- <rule ref="PEAR.WhiteSpace.ScopeIndent" /> -->
|
<!-- <rule ref="PEAR.WhiteSpace.ScopeIndent" /> -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Rules from Zend Standard-->
|
||||||
|
|
||||||
|
<!-- The closing ?> tag MUST be omitted from files containing only PHP. -->
|
||||||
|
<rule ref="Zend.Files.ClosingTag"/>
|
||||||
|
|
||||||
</ruleset>
|
</ruleset>
|
||||||
|
|||||||
@ -1,21 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Helps find duplicate translation keys in language files
|
|
||||||
#
|
|
||||||
# Copyright (C) 2014 Raphaël Doursenaud - rdoursenaud@gpcsolutions.fr
|
|
||||||
|
|
||||||
for file in `find . -type f`
|
|
||||||
do
|
|
||||||
dupes=$(
|
|
||||||
sed "s/^\s*//" "$file" | # Remove any leading whitespace
|
|
||||||
sed "s/\s*\=/=/" | # Remove any whitespace before =
|
|
||||||
grep -Po "(^.*?)=" | # Non greedeely match everything before =
|
|
||||||
sed "s/\=//" | # Remove trailing = so we get the key
|
|
||||||
sort | uniq -d # Find duplicates
|
|
||||||
)
|
|
||||||
|
|
||||||
if [ -n "$dupes" ]
|
|
||||||
then
|
|
||||||
echo "Duplicates found in $file"
|
|
||||||
echo "$dupes"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
# Script to find files that are not Unix encoded
|
# Detect files that does not contains any tab inside
|
||||||
#
|
#
|
||||||
# Laurent Destailleur - eldy@users.sourceforge.net
|
# Laurent Destailleur - eldy@users.sourceforge.net
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
@ -44,6 +44,8 @@ In htdocs/includes/tcpdf/tcpdf.php
|
|||||||
- protected $default_monospaced_font = 'courier';
|
- protected $default_monospaced_font = 'courier';
|
||||||
+ protected $default_monospaced_font = 'freemono';
|
+ protected $default_monospaced_font = 'freemono';
|
||||||
|
|
||||||
|
* Renamed getmypid into dol_getmypid().
|
||||||
|
|
||||||
|
|
||||||
JSGANTT:
|
JSGANTT:
|
||||||
--------
|
--------
|
||||||
|
|||||||
38
dev/fixduplicatelangkey.sh
Executable file
38
dev/fixduplicatelangkey.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Helps find duplicate translation keys in language files
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014 Raphaël Doursenaud - rdoursenaud@gpcsolutions.fr
|
||||||
|
|
||||||
|
|
||||||
|
# Syntax
|
||||||
|
if [ "x$1" != "xlist" -a "x$1" != "xfix" ]
|
||||||
|
then
|
||||||
|
echo "Usage: detectduplicatelangkey.sh (list|fix)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "x$1" = "xlist" ]
|
||||||
|
then
|
||||||
|
for file in `find htdocs/langs/en_US -name *.lang -type f`
|
||||||
|
do
|
||||||
|
dupes=$(
|
||||||
|
sed "s/^\s*//" "$file" | # Remove any leading whitespace
|
||||||
|
sed "s/\s*\=/=/" | # Remove any whitespace before =
|
||||||
|
grep -Po "(^.*?)=" | # Non greedeely match everything before =
|
||||||
|
sed "s/\=//" | # Remove trailing = so we get the key
|
||||||
|
sort | uniq -d # Find duplicates
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ -n "$dupes" ]
|
||||||
|
then
|
||||||
|
echo "Duplicates found in $file"
|
||||||
|
echo "$dupes"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# To convert
|
||||||
|
if [ "x$1" = "xfix" ]
|
||||||
|
then
|
||||||
|
echo Feature not implemented. Please fix files manually.
|
||||||
|
fi
|
||||||
@ -25,4 +25,6 @@ then
|
|||||||
find ./htdocs -type f -iname "*.php" -exec chmod a-x {} \;
|
find ./htdocs -type f -iname "*.php" -exec chmod a-x {} \;
|
||||||
chmod a+x ./scripts/*/*.php
|
chmod a+x ./scripts/*/*.php
|
||||||
chmod a+x ./scripts/*/*.sh
|
chmod a+x ./scripts/*/*.sh
|
||||||
|
chmod g-w ./scripts/*/*.php
|
||||||
|
chmod g-w ./scripts/*/*.sh
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -94,7 +94,7 @@ while ($i < GEN_NUMBER_FACTURE && $result >= 0)
|
|||||||
|
|
||||||
print "Invoice ".$i." for socid ".$socid;
|
print "Invoice ".$i." for socid ".$socid;
|
||||||
|
|
||||||
$facture = new Facture($db, $socids[$socid]);
|
$facture = new Facture($db);
|
||||||
$facture->date = time();
|
$facture->date = time();
|
||||||
$facture->cond_reglement_id = 3;
|
$facture->cond_reglement_id = 3;
|
||||||
$facture->mode_reglement_id = 3;
|
$facture->mode_reglement_id = 3;
|
||||||
|
|||||||
@ -122,7 +122,7 @@ while ($i < GEN_NUMBER_PROPAL && $result >= 0)
|
|||||||
$soc = new Societe($db);
|
$soc = new Societe($db);
|
||||||
|
|
||||||
|
|
||||||
$propal = new Propal($db, $socids[$socid]);
|
$propal = new Propal($db);
|
||||||
|
|
||||||
$obj = $conf->global->PROPALE_ADDON;
|
$obj = $conf->global->PROPALE_ADDON;
|
||||||
$modPropale = new $obj;
|
$modPropale = new $obj;
|
||||||
@ -130,6 +130,7 @@ while ($i < GEN_NUMBER_PROPAL && $result >= 0)
|
|||||||
|
|
||||||
$propal->ref = $numpr;
|
$propal->ref = $numpr;
|
||||||
$propal->contactid = $contids[$socids[$socid]][0];
|
$propal->contactid = $contids[$socids[$socid]][0];
|
||||||
|
$propal->socid = $socids[$socid];
|
||||||
$propal->datep = time();
|
$propal->datep = time();
|
||||||
$propal->cond_reglement_id = 3;
|
$propal->cond_reglement_id = 3;
|
||||||
$propal->mode_reglement_id = 3;
|
$propal->mode_reglement_id = 3;
|
||||||
|
|||||||
@ -4867,7 +4867,7 @@ CREATE TABLE `llx_opensurvey_sondage` (
|
|||||||
`mailsonde` tinyint(4) NOT NULL DEFAULT '0',
|
`mailsonde` tinyint(4) NOT NULL DEFAULT '0',
|
||||||
`survey_link_visible` int(11) DEFAULT '1',
|
`survey_link_visible` int(11) DEFAULT '1',
|
||||||
`origin` varchar(64) DEFAULT NULL,
|
`origin` varchar(64) DEFAULT NULL,
|
||||||
`tms` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
`tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (`id_sondage`),
|
PRIMARY KEY (`id_sondage`),
|
||||||
KEY `idx_id_sondage_admin` (`id_sondage_admin`),
|
KEY `idx_id_sondage_admin` (`id_sondage_admin`),
|
||||||
KEY `idx_date_fin` (`date_fin`)
|
KEY `idx_date_fin` (`date_fin`)
|
||||||
|
|||||||
233
dev/optimize_images.sh
Executable file
233
dev/optimize_images.sh
Executable file
@ -0,0 +1,233 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Borrowed from https://gist.github.com/lgiraudel/6065155
|
||||||
|
# Inplace mode added by Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
|
|
||||||
|
PROGNAME=${0##*/}
|
||||||
|
INPUT=''
|
||||||
|
QUIET='0'
|
||||||
|
NOSTATS='0'
|
||||||
|
INPLACE='0'
|
||||||
|
max_input_size=0
|
||||||
|
max_output_size=0
|
||||||
|
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
cat <<EO
|
||||||
|
Usage: $PROGNAME [options]
|
||||||
|
|
||||||
|
Script to optimize JPG and PNG images in a directory.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
EO
|
||||||
|
cat <<EO | column -s\& -t
|
||||||
|
-h, --help & shows this help
|
||||||
|
-q, --quiet & disables output
|
||||||
|
-i, --input [dir] & specify input directory (current directory by default)
|
||||||
|
-o, --output [dir] & specify output directory ("output" by default)
|
||||||
|
-ns, --no-stats & no stats at the end
|
||||||
|
-p, --inplace & optimizes files inplace
|
||||||
|
EO
|
||||||
|
}
|
||||||
|
|
||||||
|
# $1: input image
|
||||||
|
# $2: output image
|
||||||
|
optimize_image()
|
||||||
|
{
|
||||||
|
input_file_size=$(stat -c%s "$1")
|
||||||
|
max_input_size=$(expr $max_input_size + $input_file_size)
|
||||||
|
|
||||||
|
if [ "${1##*.}" = "png" ]; then
|
||||||
|
#optipng -o1 -clobber -quiet $1 -out $2.firstpass
|
||||||
|
optipng -o1 -quiet $1 -out $2.firstpass
|
||||||
|
pngcrush -q -rem alla -reduce $2.firstpass $2 >/dev/null
|
||||||
|
rm -fr $2.firstpass
|
||||||
|
fi
|
||||||
|
if [ "${1##*.}" = "jpg" -o "${1##*.}" = "jpeg" ]; then
|
||||||
|
jpegtran -copy none -progressive $1 > $2
|
||||||
|
fi
|
||||||
|
|
||||||
|
output_file_size=$(stat -c%s "$2")
|
||||||
|
max_output_size=$(expr $max_output_size + $output_file_size)
|
||||||
|
}
|
||||||
|
|
||||||
|
get_max_file_length()
|
||||||
|
{
|
||||||
|
local maxlength=0
|
||||||
|
|
||||||
|
IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v $OUTPUT)
|
||||||
|
|
||||||
|
for CURRENT_IMAGE in $IMAGES; do
|
||||||
|
filename=$(basename "$CURRENT_IMAGE")
|
||||||
|
if [[ ${#filename} -gt $maxlength ]]; then
|
||||||
|
maxlength=${#filename}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "$maxlength"
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
test=`type pngcrush >/dev/null 2>&1`
|
||||||
|
result=$?
|
||||||
|
if [ "x$result" == "x1" ]; then
|
||||||
|
echo "Tool pngcrush not found" && exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
test=`type optipng >/dev/null 2>&1`
|
||||||
|
result=$?
|
||||||
|
if [ "x$result" == "x1" ]; then
|
||||||
|
echo "Tool optipng not found" && exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
test=`type jpegtran >/dev/null 2>&1`
|
||||||
|
result=$?
|
||||||
|
if [ "x$result" == "x1" ]; then
|
||||||
|
echo "Tool jpegtran not found" && exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# If $INPUT is empty, then we use current directory
|
||||||
|
if [[ "$INPUT" == "" ]]; then
|
||||||
|
INPUT=$(pwd)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If $OUTPUT is empty, then we use the directory "output" in the current directory
|
||||||
|
if [[ "$OUTPUT" == "" ]]; then
|
||||||
|
OUTPUT=$(pwd)/output
|
||||||
|
fi
|
||||||
|
# If inplace, we use /tmp for output
|
||||||
|
if [[ "$INPLACE" == "1" ]]; then
|
||||||
|
OUTPUT='/tmp/optimize'
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Mode is $INPLACE (1=Images are replaced, 0=New images are stored into $OUTPUT)"
|
||||||
|
|
||||||
|
# We create the output directory
|
||||||
|
mkdir -p $OUTPUT
|
||||||
|
|
||||||
|
# To avoid some troubles with filename with spaces, we store the current IFS (Internal File Separator)...
|
||||||
|
SAVEIFS=$IFS
|
||||||
|
# ...and we set a new one
|
||||||
|
IFS=$(echo -en "\n\b")
|
||||||
|
|
||||||
|
max_filelength=`get_max_file_length`
|
||||||
|
pad=$(printf '%0.1s' "."{1..600})
|
||||||
|
sDone=' [ DONE ]'
|
||||||
|
linelength=$(expr $max_filelength + ${#sDone} + 5)
|
||||||
|
|
||||||
|
# Search of all jpg/jpeg/png in $INPUT
|
||||||
|
# We remove images from $OUTPUT if $OUTPUT is a subdirectory of $INPUT
|
||||||
|
echo "Scan $INPUT to find images"
|
||||||
|
IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v $OUTPUT)
|
||||||
|
|
||||||
|
if [ "$QUIET" == "0" ]; then
|
||||||
|
echo --- Optimizing $INPUT ---
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
for CURRENT_IMAGE in $IMAGES; do
|
||||||
|
echo "Process $CURRENT_IMAGE"
|
||||||
|
filename=$(basename $CURRENT_IMAGE)
|
||||||
|
if [ "$QUIET" == "0" ]; then
|
||||||
|
printf '%s ' "$filename"
|
||||||
|
printf '%*.*s' 0 $((linelength - ${#filename} - ${#sDone} )) "$pad"
|
||||||
|
fi
|
||||||
|
|
||||||
|
optimize_image $CURRENT_IMAGE $OUTPUT/$filename
|
||||||
|
|
||||||
|
# Replace file
|
||||||
|
if [[ "$INPLACE" == "1" ]]; then
|
||||||
|
mv $OUTPUT/$filename $CURRENT_IMAGE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$QUIET" == "0" ]; then
|
||||||
|
printf '%s\n' "$sDone"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
if [[ "$INPLACE" == "1" ]]; then
|
||||||
|
rm -rf $OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we restore the saved IFS
|
||||||
|
IFS=$SAVEIFS
|
||||||
|
|
||||||
|
if [ "$NOSTATS" == "0" -a "$QUIET" == "0" ]; then
|
||||||
|
echo
|
||||||
|
echo "Input: " $(human_readable_filesize $max_input_size)
|
||||||
|
echo "Output: " $(human_readable_filesize $max_output_size)
|
||||||
|
space_saved=$(expr $max_input_size - $max_output_size)
|
||||||
|
echo "Space save: " $(human_readable_filesize $space_saved)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
human_readable_filesize()
|
||||||
|
{
|
||||||
|
echo -n $1 | awk 'function human(x) {
|
||||||
|
s=" b Kb Mb Gb Tb"
|
||||||
|
while (x>=1024 && length(s)>1)
|
||||||
|
{x/=1024; s=substr(s,4)}
|
||||||
|
s=substr(s,1,4)
|
||||||
|
xf=(s==" b ")?"%5d ":"%.2f"
|
||||||
|
return sprintf( xf"%s", x, s)
|
||||||
|
}
|
||||||
|
{gsub(/^[0-9]+/, human($1)); print}'
|
||||||
|
}
|
||||||
|
|
||||||
|
SHORTOPTS="h,i:,o:,q,s,p"
|
||||||
|
LONGOPTS="help,input:,output:,quiet,no-stats,inplace"
|
||||||
|
ARGS=$(getopt -s bash --options $SHORTOPTS --longoptions $LONGOPTS --name $PROGNAME -- "$@")
|
||||||
|
|
||||||
|
# Syntax
|
||||||
|
if [ "x$1" != "xlist" -a "x$1" != "xfix" ]
|
||||||
|
then
|
||||||
|
echo "Usage: optimize_images.sh (list|fix) -i dirtoscan"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
eval set -- "$ARGS"
|
||||||
|
while true; do
|
||||||
|
case $1 in
|
||||||
|
-h|--help)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
-i|--input)
|
||||||
|
shift
|
||||||
|
INPUT=$1
|
||||||
|
;;
|
||||||
|
-o|--output)
|
||||||
|
shift
|
||||||
|
OUTPUT=$1
|
||||||
|
;;
|
||||||
|
-q|--quiet)
|
||||||
|
QUIET='1'
|
||||||
|
;;
|
||||||
|
-s|--no-stats)
|
||||||
|
NOSTATS='1'
|
||||||
|
;;
|
||||||
|
-p|--inplace)
|
||||||
|
INPLACE='1'
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# To convert
|
||||||
|
if [ "x$1" = "xlist" ]
|
||||||
|
then
|
||||||
|
INPLACE=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
main
|
||||||
|
|
||||||
@ -254,11 +254,11 @@ foreach($property as $key => $prop)
|
|||||||
$varprop.="\t\t\$sql.= \" ";
|
$varprop.="\t\t\$sql.= \" ";
|
||||||
if ($prop['istime'])
|
if ($prop['istime'])
|
||||||
{
|
{
|
||||||
$varprop.='".(! isset($this->'.$prop['field'].') || dol_strlen($this->'.$prop['field'].')==0?\'NULL\':$this->db->idate(';
|
$varprop.='".(! isset($this->'.$prop['field'].') || dol_strlen($this->'.$prop['field'].')==0?\'NULL\':"\'".$this->db->idate(';
|
||||||
$varprop.="\$this->".$prop['field']."";
|
$varprop.="\$this->".$prop['field']."";
|
||||||
$varprop.='))."';
|
$varprop.=')."\'")."';
|
||||||
if ($i < count($property)) $varprop.=",";
|
if ($i < count($property)) $varprop.=",";
|
||||||
$varprop.="\";";
|
$varprop.='";';
|
||||||
}
|
}
|
||||||
elseif ($prop['ischar'])
|
elseif ($prop['ischar'])
|
||||||
{
|
{
|
||||||
|
|||||||
@ -173,7 +173,7 @@ class modMyModule extends DolibarrModules
|
|||||||
|
|
||||||
// Add here list of permission defined by an id, a label, a boolean and two constant strings.
|
// Add here list of permission defined by an id, a label, a boolean and two constant strings.
|
||||||
// Example:
|
// Example:
|
||||||
// $this->rights[$r][0] = 2000; // Permission id (must not be already used)
|
// $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used)
|
||||||
// $this->rights[$r][1] = 'Permision label'; // Permission label
|
// $this->rights[$r][1] = 'Permision label'; // Permission label
|
||||||
// $this->rights[$r][3] = 1; // Permission by default for new user (0/1)
|
// $this->rights[$r][3] = 1; // Permission by default for new user (0/1)
|
||||||
// $this->rights[$r][4] = 'level1'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
|
// $this->rights[$r][4] = 'level1'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2007-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2007-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) ---Put here your own copyright and developer email---
|
* Copyright (C) ---Put here your own copyright and developer email---
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -79,7 +80,7 @@ class Skeleton_Class extends CommonObject
|
|||||||
// Put here code to add control on parameters values
|
// Put here code to add control on parameters values
|
||||||
|
|
||||||
// Insert request
|
// Insert request
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."mytable(";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX.$this->table_element."(";
|
||||||
$sql.= " field1,";
|
$sql.= " field1,";
|
||||||
$sql.= " field2";
|
$sql.= " field2";
|
||||||
//...
|
//...
|
||||||
@ -91,13 +92,13 @@ class Skeleton_Class extends CommonObject
|
|||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG);
|
dol_syslog(__METHOD__, LOG_DEBUG);
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."mytable");
|
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX.$this->table_element);
|
||||||
|
|
||||||
if (! $notrigger)
|
if (! $notrigger)
|
||||||
{
|
{
|
||||||
@ -105,10 +106,8 @@ class Skeleton_Class extends CommonObject
|
|||||||
// want this action calls a trigger.
|
// want this action calls a trigger.
|
||||||
|
|
||||||
//// Call triggers
|
//// Call triggers
|
||||||
//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
//$result=$this->call_trigger('MYOBJECT_CREATE',$user);
|
||||||
//$interface=new Interfaces($this->db);
|
//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
|
||||||
//$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
|
|
||||||
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
|
||||||
//// End call triggers
|
//// End call triggers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -118,7 +117,7 @@ class Skeleton_Class extends CommonObject
|
|||||||
{
|
{
|
||||||
foreach($this->errors as $errmsg)
|
foreach($this->errors as $errmsg)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
|
dol_syslog(__METHOD__." ".$errmsg, LOG_ERR);
|
||||||
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||||
}
|
}
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
@ -135,10 +134,11 @@ class Skeleton_Class extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Load object in memory from the database
|
* Load object in memory from the database
|
||||||
*
|
*
|
||||||
* @param int $id Id object
|
* @param int $id Id object
|
||||||
|
* @param string $ref Ref
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function fetch($id)
|
function fetch($id,$ref='')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
$sql = "SELECT";
|
$sql = "SELECT";
|
||||||
@ -146,10 +146,11 @@ class Skeleton_Class extends CommonObject
|
|||||||
$sql.= " t.field1,";
|
$sql.= " t.field1,";
|
||||||
$sql.= " t.field2";
|
$sql.= " t.field2";
|
||||||
//...
|
//...
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."mytable as t";
|
$sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t";
|
||||||
$sql.= " WHERE t.rowid = ".$id;
|
if ($ref) $sql.= " WHERE t.ref = '".$ref."'";
|
||||||
|
else $sql.= " WHERE t.rowid = ".$id;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch");
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
@ -169,7 +170,6 @@ class Skeleton_Class extends CommonObject
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->error="Error ".$this->db->lasterror();
|
$this->error="Error ".$this->db->lasterror();
|
||||||
dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -182,7 +182,7 @@ class Skeleton_Class extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
@ -196,7 +196,7 @@ class Skeleton_Class extends CommonObject
|
|||||||
// Put here code to add a control on parameters values
|
// Put here code to add a control on parameters values
|
||||||
|
|
||||||
// Update request
|
// Update request
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."mytable SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET";
|
||||||
$sql.= " field1=".(isset($this->field1)?"'".$this->db->escape($this->field1)."'":"null").",";
|
$sql.= " field1=".(isset($this->field1)?"'".$this->db->escape($this->field1)."'":"null").",";
|
||||||
$sql.= " field2=".(isset($this->field2)?"'".$this->db->escape($this->field2)."'":"null")."";
|
$sql.= " field2=".(isset($this->field2)?"'".$this->db->escape($this->field2)."'":"null")."";
|
||||||
//...
|
//...
|
||||||
@ -204,7 +204,7 @@ class Skeleton_Class extends CommonObject
|
|||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
|
dol_syslog(__METHOD__);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
||||||
|
|
||||||
@ -216,12 +216,10 @@ class Skeleton_Class extends CommonObject
|
|||||||
// want this action calls a trigger.
|
// want this action calls a trigger.
|
||||||
|
|
||||||
//// Call triggers
|
//// Call triggers
|
||||||
//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
//$result=$this->call_trigger('MYOBJECT_MODIFY',$user);
|
||||||
//$interface=new Interfaces($this->db);
|
//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
|
||||||
//$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
|
|
||||||
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
|
||||||
//// End call triggers
|
//// End call triggers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Commit or rollback
|
// Commit or rollback
|
||||||
@ -229,7 +227,7 @@ class Skeleton_Class extends CommonObject
|
|||||||
{
|
{
|
||||||
foreach($this->errors as $errmsg)
|
foreach($this->errors as $errmsg)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
|
dol_syslog(__METHOD__." ".$errmsg, LOG_ERR);
|
||||||
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||||
}
|
}
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
@ -264,21 +262,19 @@ class Skeleton_Class extends CommonObject
|
|||||||
// Uncomment this and change MYOBJECT to your own tag if you
|
// Uncomment this and change MYOBJECT to your own tag if you
|
||||||
// want this action calls a trigger.
|
// want this action calls a trigger.
|
||||||
|
|
||||||
//// Call triggers
|
//// Call triggers
|
||||||
//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
//$result=$this->call_trigger('MYOBJECT_DELETE',$user);
|
||||||
//$interface=new Interfaces($this->db);
|
//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
|
||||||
//$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
|
//// End call triggers
|
||||||
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
|
||||||
//// End call triggers
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."mytable";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX.$this->table_element;
|
||||||
$sql.= " WHERE rowid=".$this->id;
|
$sql.= " WHERE rowid=".$this->id;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::delete sql=".$sql);
|
dol_syslog(__METHOD__);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
||||||
}
|
}
|
||||||
@ -288,7 +284,7 @@ class Skeleton_Class extends CommonObject
|
|||||||
{
|
{
|
||||||
foreach($this->errors as $errmsg)
|
foreach($this->errors as $errmsg)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
|
dol_syslog(__METHOD__." ".$errmsg, LOG_ERR);
|
||||||
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||||
}
|
}
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
|
|||||||
@ -43,6 +43,7 @@ if (! $res && file_exists("../../../dolibarr/htdocs/main.inc.php")) $res=@includ
|
|||||||
if (! $res && file_exists("../../../../dolibarr/htdocs/main.inc.php")) $res=@include '../../../../dolibarr/htdocs/main.inc.php'; // Used on dev env only
|
if (! $res && file_exists("../../../../dolibarr/htdocs/main.inc.php")) $res=@include '../../../../dolibarr/htdocs/main.inc.php'; // Used on dev env only
|
||||||
if (! $res) die("Include of main fails");
|
if (! $res) die("Include of main fails");
|
||||||
// Change this following line to use the correct relative path from htdocs
|
// Change this following line to use the correct relative path from htdocs
|
||||||
|
include_once(DOL_DOCUMENT_ROOT.'/core/class/formcompany.class.php');
|
||||||
dol_include_once('/module/class/skeleton_class.class.php');
|
dol_include_once('/module/class/skeleton_class.class.php');
|
||||||
|
|
||||||
// Load traductions files requiredby by page
|
// Load traductions files requiredby by page
|
||||||
@ -52,6 +53,7 @@ $langs->load("other");
|
|||||||
// Get parameters
|
// Get parameters
|
||||||
$id = GETPOST('id','int');
|
$id = GETPOST('id','int');
|
||||||
$action = GETPOST('action','alpha');
|
$action = GETPOST('action','alpha');
|
||||||
|
$backtopage = GETPOST('backtopage');
|
||||||
$myparam = GETPOST('myparam','alpha');
|
$myparam = GETPOST('myparam','alpha');
|
||||||
|
|
||||||
// Protection if external user
|
// Protection if external user
|
||||||
@ -60,6 +62,16 @@ if ($user->societe_id > 0)
|
|||||||
//accessforbidden();
|
//accessforbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($action) && empty($id) && empty($ref)) $action='create';
|
||||||
|
|
||||||
|
// Load object if id or ref is provided as parameter
|
||||||
|
$object=new Skeleton_Class($db);
|
||||||
|
if (($id > 0 || ! empty($ref)) && $action != 'add')
|
||||||
|
{
|
||||||
|
$result=$object->fetch($id,$ref);
|
||||||
|
if ($result < 0) dol_print_error($db);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************
|
/*******************************************************************
|
||||||
@ -68,19 +80,104 @@ if ($user->societe_id > 0)
|
|||||||
* Put here all code to do according to value of "action" parameter
|
* Put here all code to do according to value of "action" parameter
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
// Action to add record
|
||||||
if ($action == 'add')
|
if ($action == 'add')
|
||||||
{
|
{
|
||||||
$object=new Skeleton_Class($db);
|
if (GETPOST('cancel'))
|
||||||
$object->prop1=$_POST["field1"];
|
{
|
||||||
$object->prop2=$_POST["field2"];
|
$urltogo=$backtopage?$backtopage:dol_buildpath('/buildingmanagement/list.php',1);
|
||||||
$result=$object->create($user);
|
header("Location: ".$urltogo);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
/* object_prop_getpost_prop */
|
||||||
|
$object->prop1=GETPOST("field1");
|
||||||
|
$object->prop2=GETPOST("field2");
|
||||||
|
|
||||||
|
if (empty($object->ref))
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),'errors');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$result=$object->create($user);
|
||||||
|
if ($result > 0)
|
||||||
|
{
|
||||||
|
// Creation OK
|
||||||
|
$urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1);
|
||||||
|
header("Location: ".$urltogo);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Creation KO
|
||||||
|
if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors');
|
||||||
|
else setEventMessages($object->error, null, 'errors');
|
||||||
|
$action='create';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$action='create';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cancel
|
||||||
|
if ($action == 'update' && GETPOST('cancel')) $action='view';
|
||||||
|
|
||||||
|
// Action to update record
|
||||||
|
if ($action == 'update' && ! GETPOST('cancel'))
|
||||||
|
{
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
$object->prop1=GETPOST("field1");
|
||||||
|
$object->prop2=GETPOST("field2");
|
||||||
|
|
||||||
|
if (empty($object->ref))
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$result=$object->update($user);
|
||||||
|
if ($result > 0)
|
||||||
|
{
|
||||||
|
$action='view';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Creation KO
|
||||||
|
if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors');
|
||||||
|
else setEventMessages($object->error, null, 'errors');
|
||||||
|
$action='edit';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$action='edit';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Action to delete
|
||||||
|
if ($action == 'confirm_delete')
|
||||||
|
{
|
||||||
|
$result=$object->delete($user);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
// Creation OK
|
// Delete OK
|
||||||
|
setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs');
|
||||||
|
header("Location: ".dol_buildpath('/buildingmanagement/list.php',1));
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
// Creation KO
|
if (! empty($object->errors)) setEventMessages(null,$object->errors,'errors');
|
||||||
$mesg=$object->error;
|
else setEventMessages($object->error,null,'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +198,7 @@ $form=new Form($db);
|
|||||||
|
|
||||||
// Put here content of your page
|
// Put here content of your page
|
||||||
|
|
||||||
// Example 1 : Adding jquery code
|
// Example : Adding jquery code
|
||||||
print '<script type="text/javascript" language="javascript">
|
print '<script type="text/javascript" language="javascript">
|
||||||
jQuery(document).ready(function() {
|
jQuery(document).ready(function() {
|
||||||
function init_myfunc()
|
function init_myfunc()
|
||||||
@ -117,13 +214,8 @@ jQuery(document).ready(function() {
|
|||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
|
|
||||||
// Example 2 : Adding links to objects
|
// Part to show a list
|
||||||
// The class must extends CommonObject class to have this method available
|
if ($action == 'list' || empty($id))
|
||||||
//$somethingshown=$object->showLinkedObjectBlock();
|
|
||||||
|
|
||||||
|
|
||||||
// Example 3 : List of data
|
|
||||||
if ($action == 'list')
|
|
||||||
{
|
{
|
||||||
$sql = "SELECT";
|
$sql = "SELECT";
|
||||||
$sql.= " t.rowid,";
|
$sql.= " t.rowid,";
|
||||||
@ -139,27 +231,24 @@ if ($action == 'list')
|
|||||||
print_liste_field_titre($langs->trans('field2'),$_SERVER['PHP_SELF'],'t.field2','',$param,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('field2'),$_SERVER['PHP_SELF'],'t.field2','',$param,'',$sortfield,$sortorder);
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
dol_syslog($script_file." sql=".$sql, LOG_DEBUG);
|
dol_syslog($script_file, LOG_DEBUG);
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
if ($num)
|
while ($i < $num)
|
||||||
{
|
{
|
||||||
while ($i < $num)
|
$obj = $db->fetch_object($resql);
|
||||||
|
if ($obj)
|
||||||
{
|
{
|
||||||
$obj = $db->fetch_object($resql);
|
// You can use here results
|
||||||
if ($obj)
|
print '<tr><td>';
|
||||||
{
|
print $obj->field1;
|
||||||
// You can use here results
|
print $obj->field2;
|
||||||
print '<tr><td>';
|
print '</td></tr>';
|
||||||
print $obj->field1;
|
|
||||||
print $obj->field2;
|
|
||||||
print '</td></tr>';
|
|
||||||
}
|
|
||||||
$i++;
|
|
||||||
}
|
}
|
||||||
|
$i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -173,6 +262,102 @@ if ($action == 'list')
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Part to create
|
||||||
|
if ($action == 'create')
|
||||||
|
{
|
||||||
|
print_fiche_titre($langs->trans("NewResidence"));
|
||||||
|
|
||||||
|
dol_fiche_head();
|
||||||
|
|
||||||
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
print '<input type="hidden" name="action" value="add">';
|
||||||
|
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
|
||||||
|
|
||||||
|
print '<table class="border centpercent">'."\n";
|
||||||
|
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td>';
|
||||||
|
print '<input class="flat" type="text" size="36" name="label" value="'.$label.'">';
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '</table>'."\n";
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
print '<center><input type="submit" class="button" name="add" value="'.$langs->trans("Create").'"> <input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></center>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Part to edit record
|
||||||
|
if (($id || $ref) && $action == 'edit')
|
||||||
|
{
|
||||||
|
dol_fiche_head();
|
||||||
|
|
||||||
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
print '<input type="hidden" name="action" value="add">';
|
||||||
|
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
|
||||||
|
print '<input type="hidden" name="id" value="'.$object->id.'">';
|
||||||
|
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
print '<center><input type="submit" class="button" name="add" value="'.$langs->trans("Create").'"></center>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Part to show record
|
||||||
|
if ($id && (empty($action) || $action == 'view'))
|
||||||
|
{
|
||||||
|
dol_fiche_head();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
print '<div class="tabsAction">'."\n";
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('addMoreActionsButtons',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||||
|
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
|
||||||
|
if (empty($reshook))
|
||||||
|
{
|
||||||
|
if ($user->rights->mymodule->write)
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=edit">'.$langs->trans("Modify").'</a></div>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->rights->mymodule->delete)
|
||||||
|
{
|
||||||
|
if ($conf->use_javascript_ajax && empty($conf->dol_use_jmobile)) // We can't use preloaded confirm form with jmobile
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><span id="action-delete" class="butActionDelete">'.$langs->trans('Delete').'</span></div>'."\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete">'.$langs->trans('Delete').'</a></div>'."\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print '</div>'."\n";
|
||||||
|
|
||||||
|
|
||||||
|
// Example 2 : Adding links to objects
|
||||||
|
// The class must extends CommonObject class to have this method available
|
||||||
|
//$somethingshown=$object->showLinkedObjectBlock();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// End of page
|
// End of page
|
||||||
llxFooter();
|
llxFooter();
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|||||||
@ -57,7 +57,7 @@ if (! $result > 0) { dol_print_error('',$user->error); exit; }
|
|||||||
$user->getrights();
|
$user->getrights();
|
||||||
|
|
||||||
|
|
||||||
print "***** ".$script_file." (".$version.") pid=".getmypid()." *****\n";
|
print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n";
|
||||||
if (! isset($argv[1])) { // Check parameters
|
if (! isset($argv[1])) { // Check parameters
|
||||||
print "Usage: ".$script_file." param1 param2 ...\n";
|
print "Usage: ".$script_file." param1 param2 ...\n";
|
||||||
exit(-1);
|
exit(-1);
|
||||||
@ -119,7 +119,7 @@ $sql.= " FROM ".MAIN_DB_PREFIX."skeleton";
|
|||||||
$sql.= " WHERE field3 = 'xxx'";
|
$sql.= " WHERE field3 = 'xxx'";
|
||||||
$sql.= " ORDER BY field1 ASC";
|
$sql.= " ORDER BY field1 ASC";
|
||||||
|
|
||||||
dol_syslog($script_file." sql=".$sql, LOG_DEBUG);
|
dol_syslog($script_file, LOG_DEBUG);
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -269,5 +269,4 @@ function createSkeleton($authentication,$skeleton)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Return the results.
|
// Return the results.
|
||||||
$server->service($HTTP_RAW_POST_DATA);
|
$server->service(file_get_contents("php://input"));
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,22 @@
|
|||||||
#!/usr/bin/php
|
#!/usr/bin/php
|
||||||
<?php
|
<?php
|
||||||
/*
|
/* Copyright (C) 2014 by FromDual GmbH, licensed under GPL v2
|
||||||
* strip_language_file.php
|
* Copyright (C) 2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* (c) 2014 by FromDual GmbH, licensed under GPL v2
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* -----
|
||||||
*
|
*
|
||||||
* Compares a secondary language translation file with its primary
|
* Compares a secondary language translation file with its primary
|
||||||
* language file and strips redundant translations.
|
* language file and strips redundant translations.
|
||||||
@ -12,11 +25,10 @@
|
|||||||
*
|
*
|
||||||
* Usage:
|
* Usage:
|
||||||
* cd htdocs/langs
|
* cd htdocs/langs
|
||||||
* ../../dev/translation/strip_language_file.php <primary_lang_dir> <secondary_lang_dir> <languagefile.lang>
|
* ../../dev/translation/strip_language_file.php <primary_lang_dir> <secondary_lang_dir> [file.lang|all]
|
||||||
*
|
*
|
||||||
* Parameters:
|
* To rename all .delta files, you can do
|
||||||
* 1 - Primary Language
|
* for fic in `ls *.delta`; do f=`echo $fic | sed -e 's/\.delta//'`; echo $f; mv $f.delta $f; done
|
||||||
* 2 - Secondary Language
|
|
||||||
*
|
*
|
||||||
* Rules:
|
* Rules:
|
||||||
* secondary string == primary string -> strip
|
* secondary string == primary string -> strip
|
||||||
@ -24,9 +36,6 @@
|
|||||||
* secondary string not in primary -> strip and warning
|
* secondary string not in primary -> strip and warning
|
||||||
* secondary string has no value -> strip and warning
|
* secondary string has no value -> strip and warning
|
||||||
* secondary string != primary string -> secondary.lang.delta
|
* secondary string != primary string -> secondary.lang.delta
|
||||||
*
|
|
||||||
* To rename all .delta fils, you can do
|
|
||||||
* for fic in `ls *.delta`; do f=`echo $fic | sed -e 's/\.delta//'`; echo $f; mv $f.delta $f; done
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -260,6 +269,9 @@ foreach($filesToProcess as $fileToProcess)
|
|||||||
}
|
}
|
||||||
|
|
||||||
print "Output can be found at $output.\n";
|
print "Output can be found at $output.\n";
|
||||||
|
|
||||||
|
print "To rename all .delta files, you can do\n";
|
||||||
|
print 'for fic in `ls *.delta`; do f=`echo $fic | sed -e \'s/\.delta//\'`; echo $f; mv $f.delta $f; done'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,7 @@ Usage
|
|||||||
|
|
||||||
`cd` into the vagrant box directory and simply type `vagrant up`.
|
`cd` into the vagrant box directory and simply type `vagrant up`.
|
||||||
|
|
||||||
That's all you need to do. It will build a brand new VirtalBox machine for you with everything you need to develop on Dolibarr.
|
That's all you need to do. It will build a brand new VirtualBox machine for you with everything you need to develop on Dolibarr.
|
||||||
|
|
||||||
### Name resolution
|
### Name resolution
|
||||||
For easy access to the VM you need to setup name resolution to the machines IP.
|
For easy access to the VM you need to setup name resolution to the machines IP.
|
||||||
@ -45,9 +45,16 @@ Somewhat bleeding edge vagrant box for develop branch related work.
|
|||||||
|
|
||||||
- IP: 192.168.42.101
|
- IP: 192.168.42.101
|
||||||
- Vhost: dev.dolibarr.org
|
- Vhost: dev.dolibarr.org
|
||||||
- OS: Debian Wheezy 7.5
|
- OS: Debian Wheezy 7.5 x64
|
||||||
- Webserver: Apache 2.2.22
|
- Webserver: Apache 2.2.22
|
||||||
- PHP: mod_php 5.5.13-1~dotdeb.1
|
- PHP: mod_php 5.5.14-1~dotdeb.1
|
||||||
|
Installed modules:
|
||||||
|
- cli
|
||||||
|
- curl
|
||||||
|
- gd
|
||||||
|
- imagick
|
||||||
|
- intl
|
||||||
|
- mcrypt
|
||||||
- Database: MySQL 5.5
|
- Database: MySQL 5.5
|
||||||
- Root user: root
|
- Root user: root
|
||||||
- Root password: root
|
- Root password: root
|
||||||
@ -55,7 +62,13 @@ Somewhat bleeding edge vagrant box for develop branch related work.
|
|||||||
- Database user: user
|
- Database user: user
|
||||||
- Database password: user
|
- Database password: user
|
||||||
- Initial data: dev/initdata/mysqldump_dolibarr-3.5.0.sql
|
- Initial data: dev/initdata/mysqldump_dolibarr-3.5.0.sql
|
||||||
|
- Database: PostgreSQL 9.3
|
||||||
|
- Adminer: lightweight database management. Access through http://192.168.42.101/adminer
|
||||||
- Debugger: XDebug
|
- Debugger: XDebug
|
||||||
- Profiler: Xhprof
|
- Profiler: Xhprof. Access through http://192.168.42.101/xhprof/xhprof_html
|
||||||
|
|
||||||
You can access MailCatcher to read all outgoing emails at http://192.168.42.101:1080
|
You can access MailCatcher to read all outgoing emails at http://192.168.42.101:1080
|
||||||
|
|
||||||
|
To access the machine you must use the following private keys:
|
||||||
|
- User root: located at puphpet/files/dot/ssh/root_rsa
|
||||||
|
- User vagrant: located at puphpet/files/dot/ssh/id_rsa
|
||||||
|
|||||||
82
dev/vagrant/dolibarrdev/Vagrantfile
vendored
82
dev/vagrant/dolibarrdev/Vagrantfile
vendored
@ -23,13 +23,62 @@ Vagrant.configure("2") do |config|
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if Vagrant.has_plugin?('vagrant-hostsupdater')
|
||||||
|
hosts = Array.new()
|
||||||
|
|
||||||
|
if !configValues['apache']['install'].nil? &&
|
||||||
|
configValues['apache']['install'].to_i == 1 &&
|
||||||
|
configValues['apache']['vhosts'].is_a?(Hash)
|
||||||
|
configValues['apache']['vhosts'].each do |i, vhost|
|
||||||
|
hosts.push(vhost['servername'])
|
||||||
|
|
||||||
|
if vhost['serveraliases'].is_a?(Array)
|
||||||
|
vhost['serveraliases'].each do |vhost_alias|
|
||||||
|
hosts.push(vhost_alias)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
elsif !configValues['nginx']['install'].nil? &&
|
||||||
|
configValues['nginx']['install'].to_i == 1 &&
|
||||||
|
configValues['nginx']['vhosts'].is_a?(Hash)
|
||||||
|
configValues['nginx']['vhosts'].each do |i, vhost|
|
||||||
|
hosts.push(vhost['server_name'])
|
||||||
|
|
||||||
|
if vhost['server_aliases'].is_a?(Array)
|
||||||
|
vhost['server_aliases'].each do |x, vhost_alias|
|
||||||
|
hosts.push(vhost_alias)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if hosts.any?
|
||||||
|
contents = File.open("#{dir}/puphpet/shell/hostsupdater-notice.txt", 'r'){ |file| file.read }
|
||||||
|
puts "\n\033[34m#{contents}\033[0m\n"
|
||||||
|
|
||||||
|
if config.vm.hostname.to_s.strip.length == 0
|
||||||
|
config.vm.hostname = 'puphpet-dev-machine'
|
||||||
|
end
|
||||||
|
|
||||||
|
config.hostsupdater.aliases = hosts
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
data['vm']['synced_folder'].each do |i, folder|
|
data['vm']['synced_folder'].each do |i, folder|
|
||||||
if folder['source'] != '' && folder['target'] != ''
|
if folder['source'] != '' && folder['target'] != ''
|
||||||
nfs = (folder['nfs'] == "true") ? "nfs" : nil
|
if folder['sync_type'] == 'nfs'
|
||||||
if nfs == "nfs"
|
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: "nfs"
|
||||||
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: nfs
|
elsif folder['sync_type'] == 'smb'
|
||||||
|
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: "smb"
|
||||||
|
elsif folder['sync_type'] == 'rsync'
|
||||||
|
rsync_args = !folder['rsync']['args'].nil? ? folder['rsync']['args'] : ["--verbose", "--archive", "--delete", "-z"]
|
||||||
|
rsync_auto = !folder['rsync']['auto'].nil? ? folder['rsync']['auto'] : true
|
||||||
|
rsync_exclude = !folder['rsync']['exclude'].nil? ? folder['rsync']['exclude'] : [".vagrant/"]
|
||||||
|
|
||||||
|
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
|
||||||
|
rsync__args: rsync_args, rsync__exclude: rsync_exclude, rsync__auto: rsync_auto, type: "rsync"
|
||||||
else
|
else
|
||||||
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: nfs,
|
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
|
||||||
group: 'www-data', owner: 'www-data', mount_options: ["dmode=775", "fmode=764"]
|
group: 'www-data', owner: 'www-data', mount_options: ["dmode=775", "fmode=764"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -45,6 +94,9 @@ Vagrant.configure("2") do |config|
|
|||||||
if key == "memory"
|
if key == "memory"
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
if key == "cpus"
|
||||||
|
next
|
||||||
|
end
|
||||||
|
|
||||||
if key == "natdnshostresolver1"
|
if key == "natdnshostresolver1"
|
||||||
value = value ? "on" : "off"
|
value = value ? "on" : "off"
|
||||||
@ -54,6 +106,7 @@ Vagrant.configure("2") do |config|
|
|||||||
end
|
end
|
||||||
|
|
||||||
virtualbox.customize ["modifyvm", :id, "--memory", "#{data['vm']['memory']}"]
|
virtualbox.customize ["modifyvm", :id, "--memory", "#{data['vm']['memory']}"]
|
||||||
|
virtualbox.customize ["modifyvm", :id, "--cpus", "#{data['vm']['cpus']}"]
|
||||||
|
|
||||||
if data['vm']['hostname'].to_s.strip.length != 0
|
if data['vm']['hostname'].to_s.strip.length != 0
|
||||||
virtualbox.customize ["modifyvm", :id, "--name", config.vm.hostname]
|
virtualbox.customize ["modifyvm", :id, "--name", config.vm.hostname]
|
||||||
@ -69,11 +122,15 @@ Vagrant.configure("2") do |config|
|
|||||||
if key == "memsize"
|
if key == "memsize"
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
if key == "cpus"
|
||||||
|
next
|
||||||
|
end
|
||||||
|
|
||||||
v.vmx["#{key}"] = "#{value}"
|
v.vmx["#{key}"] = "#{value}"
|
||||||
end
|
end
|
||||||
|
|
||||||
v.vmx["memsize"] = "#{data['vm']['memory']}"
|
v.vmx["memsize"] = "#{data['vm']['memory']}"
|
||||||
|
v.vmx["numvcpus"] = "#{data['vm']['cpus']}"
|
||||||
|
|
||||||
if data['vm']['hostname'].to_s.strip.length != 0
|
if data['vm']['hostname'].to_s.strip.length != 0
|
||||||
v.vmx["displayName"] = config.vm.hostname
|
v.vmx["displayName"] = config.vm.hostname
|
||||||
@ -89,11 +146,15 @@ Vagrant.configure("2") do |config|
|
|||||||
if key == "memsize"
|
if key == "memsize"
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
if key == "cpus"
|
||||||
|
next
|
||||||
|
end
|
||||||
|
|
||||||
v.customize ["set", :id, "--#{key}", "#{value}"]
|
v.customize ["set", :id, "--#{key}", "#{value}"]
|
||||||
end
|
end
|
||||||
|
|
||||||
v.memory = "#{data['vm']['memory']}"
|
v.memory = "#{data['vm']['memory']}"
|
||||||
|
v.cpus = "#{data['vm']['cpus']}"
|
||||||
|
|
||||||
if data['vm']['hostname'].to_s.strip.length != 0
|
if data['vm']['hostname'].to_s.strip.length != 0
|
||||||
v.name = config.vm.hostname
|
v.name = config.vm.hostname
|
||||||
@ -111,7 +172,8 @@ Vagrant.configure("2") do |config|
|
|||||||
kg.path = "puphpet/shell/ssh-keygen.sh"
|
kg.path = "puphpet/shell/ssh-keygen.sh"
|
||||||
kg.args = "#{ssh_username}"
|
kg.args = "#{ssh_username}"
|
||||||
end
|
end
|
||||||
config.vm.provision :shell, :path => "puphpet/shell/update-puppet.sh"
|
config.vm.provision :shell, :path => "puphpet/shell/install-ruby.sh"
|
||||||
|
config.vm.provision :shell, :path => "puphpet/shell/install-puppet.sh"
|
||||||
|
|
||||||
config.vm.provision :puppet do |puppet|
|
config.vm.provision :puppet do |puppet|
|
||||||
puppet.facter = {
|
puppet.facter = {
|
||||||
@ -128,7 +190,14 @@ Vagrant.configure("2") do |config|
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
config.vm.provision :shell, :path => "puphpet/shell/execute-files.sh"
|
config.vm.provision :shell do |s|
|
||||||
|
s.path = "puphpet/shell/execute-files.sh"
|
||||||
|
s.args = ["exec-once", "exec-always"]
|
||||||
|
end
|
||||||
|
config.vm.provision :shell, run: "always" do |s|
|
||||||
|
s.path = "puphpet/shell/execute-files.sh"
|
||||||
|
s.args = ["startup-once", "startup-always"]
|
||||||
|
end
|
||||||
config.vm.provision :shell, :path => "puphpet/shell/important-notices.sh"
|
config.vm.provision :shell, :path => "puphpet/shell/important-notices.sh"
|
||||||
|
|
||||||
if File.file?("#{dir}/puphpet/files/dot/ssh/id_rsa")
|
if File.file?("#{dir}/puphpet/files/dot/ssh/id_rsa")
|
||||||
@ -168,3 +237,4 @@ Vagrant.configure("2") do |config|
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2,9 +2,4 @@
|
|||||||
* text=auto
|
* text=auto
|
||||||
|
|
||||||
# Force the following filetypes to have unix eols, so Windows does not break them
|
# Force the following filetypes to have unix eols, so Windows does not break them
|
||||||
*.pp text eol=lf
|
*.* text eol=lf
|
||||||
*.sh text eol=lf
|
|
||||||
*.yaml text eol=lf
|
|
||||||
Puppetfile text eol=lf
|
|
||||||
.bash_aliases text eol=lf
|
|
||||||
.vimrc text eol=lf
|
|
||||||
|
|||||||
34
dev/vagrant/dolibarrdev/puphpet/config.yaml
vendored
34
dev/vagrant/dolibarrdev/puphpet/config.yaml
vendored
@ -5,6 +5,7 @@ vagrantfile-local:
|
|||||||
box_url: puphpet/debian75-x64
|
box_url: puphpet/debian75-x64
|
||||||
hostname: null
|
hostname: null
|
||||||
memory: '512'
|
memory: '512'
|
||||||
|
cpus: '1'
|
||||||
chosen_provider: virtualbox
|
chosen_provider: virtualbox
|
||||||
network:
|
network:
|
||||||
private_network: 192.168.42.101
|
private_network: 192.168.42.101
|
||||||
@ -29,10 +30,12 @@ vagrantfile-local:
|
|||||||
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
|
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
|
||||||
- '--parser future'
|
- '--parser future'
|
||||||
synced_folder:
|
synced_folder:
|
||||||
PL1BkioqqvGY:
|
w6GqzzS2a7lu:
|
||||||
source: ../../../
|
source: ../../../
|
||||||
target: /var/www
|
target: /var/www/dolibarr
|
||||||
nfs: 'false'
|
sync_type: default
|
||||||
|
rsync:
|
||||||
|
auto: 'false'
|
||||||
usable_port_range: 2200..2250
|
usable_port_range: 2200..2250
|
||||||
ssh:
|
ssh:
|
||||||
host: null
|
host: null
|
||||||
@ -61,8 +64,7 @@ mailcatcher:
|
|||||||
smtp_port: 1025
|
smtp_port: 1025
|
||||||
http_ip: 0.0.0.0
|
http_ip: 0.0.0.0
|
||||||
http_port: '1080'
|
http_port: '1080'
|
||||||
mailcatcher_path: /usr/local/bin
|
mailcatcher_path: /usr/local/rvm/wrappers/default
|
||||||
log_path: /var/log/mailcatcher/mailcatcher.log
|
|
||||||
firewall:
|
firewall:
|
||||||
install: '1'
|
install: '1'
|
||||||
rules: null
|
rules: null
|
||||||
@ -71,7 +73,7 @@ apache:
|
|||||||
settings:
|
settings:
|
||||||
user: www-data
|
user: www-data
|
||||||
group: www-data
|
group: www-data
|
||||||
default_vhost: false
|
default_vhost: true
|
||||||
manage_user: false
|
manage_user: false
|
||||||
manage_group: false
|
manage_group: false
|
||||||
sendfile: 0
|
sendfile: 0
|
||||||
@ -79,9 +81,9 @@ apache:
|
|||||||
- php
|
- php
|
||||||
- rewrite
|
- rewrite
|
||||||
vhosts:
|
vhosts:
|
||||||
CGyWQB0fx4x0:
|
syTi8VestVdG:
|
||||||
servername: dev.dolibarr.org
|
servername: dev.dolibarr.org
|
||||||
docroot: /var/www/htdocs
|
docroot: /var/www/dolibarr/htdocs
|
||||||
port: '80'
|
port: '80'
|
||||||
setenv:
|
setenv:
|
||||||
- 'APP_ENV dev'
|
- 'APP_ENV dev'
|
||||||
@ -96,8 +98,12 @@ apache:
|
|||||||
mod_spdy: 0
|
mod_spdy: 0
|
||||||
nginx:
|
nginx:
|
||||||
install: 0
|
install: 0
|
||||||
|
settings:
|
||||||
|
default_vhost: 1
|
||||||
|
proxy_buffer_size: 128k
|
||||||
|
proxy_buffers: '4 256k'
|
||||||
vhosts:
|
vhosts:
|
||||||
jeF1sybIJ3V2:
|
kZiLLcLAIVAF:
|
||||||
server_name: awesome.dev
|
server_name: awesome.dev
|
||||||
server_aliases:
|
server_aliases:
|
||||||
- www.awesome.dev
|
- www.awesome.dev
|
||||||
@ -152,7 +158,7 @@ mysql:
|
|||||||
root_password: root
|
root_password: root
|
||||||
adminer: 0
|
adminer: 0
|
||||||
databases:
|
databases:
|
||||||
2OfuuapoIqsl:
|
HHTBm64g1siG:
|
||||||
grant:
|
grant:
|
||||||
- ALTER
|
- ALTER
|
||||||
- CREATE
|
- CREATE
|
||||||
@ -166,16 +172,16 @@ mysql:
|
|||||||
host: localhost
|
host: localhost
|
||||||
user: user
|
user: user
|
||||||
password: user
|
password: user
|
||||||
sql_file: /var/www/dev/initdata/mysqldump_dolibarr_3.5.0.sql
|
sql_file: /var/www/dolibarr/dev/initdata/mysqldump_dolibarr_3.5.0.sql
|
||||||
postgresql:
|
postgresql:
|
||||||
install: 0
|
install: '1'
|
||||||
settings:
|
settings:
|
||||||
root_password: '123'
|
root_password: root
|
||||||
user_group: postgres
|
user_group: postgres
|
||||||
encoding: UTF8
|
encoding: UTF8
|
||||||
version: '9.3'
|
version: '9.3'
|
||||||
databases: { }
|
databases: { }
|
||||||
adminer: 0
|
adminer: '1'
|
||||||
mariadb:
|
mariadb:
|
||||||
install: 0
|
install: 0
|
||||||
root_password: '123'
|
root_password: '123'
|
||||||
|
|||||||
@ -1,4 +1 @@
|
|||||||
ssh/id_rsa
|
ssh/*
|
||||||
ssh/id_rsa.pub
|
|
||||||
ssh/insecure_private_key
|
|
||||||
ssh/id_rsa.ppk
|
|
||||||
0
dev/vagrant/dolibarrdev/puphpet/files/startup-once/empty
vendored
Normal file
0
dev/vagrant/dolibarrdev/puphpet/files/startup-once/empty
vendored
Normal file
241
dev/vagrant/dolibarrdev/puphpet/puppet/manifest.pp
vendored
241
dev/vagrant/dolibarrdev/puphpet/puppet/manifest.pp
vendored
@ -197,8 +197,8 @@ if is_array($server_values['packages']) and count($server_values['packages']) >
|
|||||||
}
|
}
|
||||||
|
|
||||||
define add_dotdeb ($release){
|
define add_dotdeb ($release){
|
||||||
apt::source { $name:
|
apt::source { "${name}-repo.puphpet":
|
||||||
location => 'http://packages.dotdeb.org',
|
location => 'http://repo.puphpet.com/dotdeb/',
|
||||||
release => $release,
|
release => $release,
|
||||||
repos => 'all',
|
repos => 'all',
|
||||||
required_packages => 'debian-keyring debian-archive-keyring',
|
required_packages => 'debian-keyring debian-archive-keyring',
|
||||||
@ -270,7 +270,7 @@ if hash_key_equals($mailcatcher_values, 'install', 1) {
|
|||||||
|
|
||||||
create_resources('class', { 'mailcatcher' => $mailcatcher_values['settings'] })
|
create_resources('class', { 'mailcatcher' => $mailcatcher_values['settings'] })
|
||||||
|
|
||||||
if ! defined(Firewall["100 tcp/${mailcatcher_values['settings']['smtp_port']},${mailcatcher_values['settings']['http_port']}"]) {
|
if ! defined(Firewall["100 tcp/${mailcatcher_values['settings']['smtp_port']}, ${mailcatcher_values['settings']['http_port']}"]) {
|
||||||
firewall { "100 tcp/${mailcatcher_values['settings']['smtp_port']}, ${mailcatcher_values['settings']['http_port']}":
|
firewall { "100 tcp/${mailcatcher_values['settings']['smtp_port']}, ${mailcatcher_values['settings']['http_port']}":
|
||||||
port => [$mailcatcher_values['settings']['smtp_port'], $mailcatcher_values['settings']['http_port']],
|
port => [$mailcatcher_values['settings']['smtp_port'], $mailcatcher_values['settings']['http_port']],
|
||||||
proto => tcp,
|
proto => tcp,
|
||||||
@ -279,30 +279,39 @@ if hash_key_equals($mailcatcher_values, 'install', 1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ! defined(Class['supervisord']) {
|
if ! defined(Class['supervisord']) {
|
||||||
|
class{ 'puphpet::python::pip': }
|
||||||
|
|
||||||
class { 'supervisord':
|
class { 'supervisord':
|
||||||
install_pip => true,
|
install_pip => false,
|
||||||
|
require => [
|
||||||
|
Class['my_fw::post'],
|
||||||
|
Class['Puphpet::Python::Pip'],
|
||||||
|
],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$supervisord_mailcatcher_options = sort(join_keys_to_values({
|
$mailcatcher_path = $mailcatcher_values['settings']['mailcatcher_path']
|
||||||
|
|
||||||
|
$mailcatcher_options = sort(join_keys_to_values({
|
||||||
' --smtp-ip' => $mailcatcher_values['settings']['smtp_ip'],
|
' --smtp-ip' => $mailcatcher_values['settings']['smtp_ip'],
|
||||||
' --smtp-port' => $mailcatcher_values['settings']['smtp_port'],
|
' --smtp-port' => $mailcatcher_values['settings']['smtp_port'],
|
||||||
' --http-ip' => $mailcatcher_values['settings']['http_ip'],
|
' --http-ip' => $mailcatcher_values['settings']['http_ip'],
|
||||||
' --http-port' => $mailcatcher_values['settings']['http_port']
|
' --http-port' => $mailcatcher_values['settings']['http_port']
|
||||||
}, ' '))
|
}, ' '))
|
||||||
|
|
||||||
$supervisord_mailcatcher_cmd = "mailcatcher ${supervisord_mailcatcher_options} -f >> ${mailcatcher_values['settings']['log']}"
|
|
||||||
|
|
||||||
supervisord::program { 'mailcatcher':
|
supervisord::program { 'mailcatcher':
|
||||||
command => $supervisord_mailcatcher_cmd,
|
command => "${mailcatcher_path}/mailcatcher ${mailcatcher_options} -f",
|
||||||
priority => '100',
|
priority => '100',
|
||||||
user => 'mailcatcher',
|
user => 'mailcatcher',
|
||||||
autostart => true,
|
autostart => true,
|
||||||
autorestart => 'true',
|
autorestart => 'true',
|
||||||
environment => {
|
environment => {
|
||||||
'PATH' => "/bin:/sbin:/usr/bin:/usr/sbin:${mailcatcher_values['settings']['path']}"
|
'PATH' => "/bin:/sbin:/usr/bin:/usr/sbin:${mailcatcher_path}"
|
||||||
},
|
},
|
||||||
require => Package['mailcatcher']
|
require => [
|
||||||
|
Class['mailcatcher::config'],
|
||||||
|
File['/var/log/mailcatcher']
|
||||||
|
],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -312,10 +321,6 @@ if $firewall_values == undef {
|
|||||||
$firewall_values = hiera('firewall', false)
|
$firewall_values = hiera('firewall', false)
|
||||||
}
|
}
|
||||||
|
|
||||||
resources { 'firewall':
|
|
||||||
purge => true
|
|
||||||
}
|
|
||||||
|
|
||||||
Firewall {
|
Firewall {
|
||||||
before => Class['my_fw::post'],
|
before => Class['my_fw::post'],
|
||||||
require => Class['my_fw::pre'],
|
require => Class['my_fw::pre'],
|
||||||
@ -383,16 +388,15 @@ if hash_key_equals($apache_values, 'install', 1) {
|
|||||||
include puphpet::params
|
include puphpet::params
|
||||||
include apache::params
|
include apache::params
|
||||||
|
|
||||||
$webroot_location = $puphpet::params::apache_webroot_location
|
$webroot_location = $puphpet::params::apache_webroot_location
|
||||||
|
$apache_provider_types = ['virtualbox', 'vmware_fusion', 'vmware_desktop', 'parallels']
|
||||||
|
|
||||||
exec { "exec mkdir -p ${webroot_location}":
|
exec { "exec mkdir -p ${webroot_location}":
|
||||||
command => "mkdir -p ${webroot_location}",
|
command => "mkdir -p ${webroot_location}",
|
||||||
creates => $webroot_location,
|
creates => $webroot_location,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (downcase($::provisioner_type) in ['virtualbox', 'vmware_fusion'])
|
if (downcase($::provisioner_type) in $apache_provider_types) and ! defined(File[$webroot_location]) {
|
||||||
and ! defined(File[$webroot_location])
|
|
||||||
{
|
|
||||||
file { $webroot_location:
|
file { $webroot_location:
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
mode => 0775,
|
mode => 0775,
|
||||||
@ -401,11 +405,7 @@ if hash_key_equals($apache_values, 'install', 1) {
|
|||||||
Group['www-data']
|
Group['www-data']
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
} elsif ! (downcase($::provisioner_type) in $apache_provider_types) and ! defined(File[$webroot_location]) {
|
||||||
|
|
||||||
if !(downcase($::provisioner_type) in ['virtualbox', 'vmware_fusion'])
|
|
||||||
and ! defined(File[$webroot_location])
|
|
||||||
{
|
|
||||||
file { $webroot_location:
|
file { $webroot_location:
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
group => 'www-data',
|
group => 'www-data',
|
||||||
@ -435,8 +435,8 @@ if hash_key_equals($apache_values, 'install', 1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if $::operatingsystem == 'ubuntu'
|
if $::operatingsystem == 'ubuntu'
|
||||||
and hash_key_equals($php_values, 'install', 1)
|
and hash_key_equals($php_values, 'install', 1)
|
||||||
and hash_key_equals($php_values, 'version', 55)
|
and hash_key_equals($php_values, 'version', 55)
|
||||||
{
|
{
|
||||||
$apache_version = '2.4'
|
$apache_version = '2.4'
|
||||||
} else {
|
} else {
|
||||||
@ -467,15 +467,16 @@ if hash_key_equals($apache_values, 'install', 1) {
|
|||||||
$apache_vhosts = merge($apache_values['vhosts'], {
|
$apache_vhosts = merge($apache_values['vhosts'], {
|
||||||
'default_vhost_80' => {
|
'default_vhost_80' => {
|
||||||
'servername' => 'default',
|
'servername' => 'default',
|
||||||
'serveraliases' => ['*'],
|
|
||||||
'docroot' => '/var/www/default',
|
'docroot' => '/var/www/default',
|
||||||
'port' => 80,
|
'port' => 80,
|
||||||
|
'default_vhost' => true,
|
||||||
},
|
},
|
||||||
'default_vhost_443' => {
|
'default_vhost_443' => {
|
||||||
'servername' => 'default',
|
'servername' => 'default',
|
||||||
'serveraliases' => ['*'],
|
|
||||||
'docroot' => '/var/www/default',
|
'docroot' => '/var/www/default',
|
||||||
'port' => 443,
|
'port' => 443,
|
||||||
|
'default_vhost' => true,
|
||||||
|
'ssl' => 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@ -489,7 +490,7 @@ if hash_key_equals($apache_values, 'install', 1) {
|
|||||||
creates => $vhost['docroot'],
|
creates => $vhost['docroot'],
|
||||||
}
|
}
|
||||||
|
|
||||||
if (downcase($::provisioner_type) in ['virtualbox', 'vmware_fusion'])
|
if (downcase($::provisioner_type) in $apache_provider_types)
|
||||||
and ! defined(File[$vhost['docroot']])
|
and ! defined(File[$vhost['docroot']])
|
||||||
{
|
{
|
||||||
file { $vhost['docroot']:
|
file { $vhost['docroot']:
|
||||||
@ -497,9 +498,7 @@ if hash_key_equals($apache_values, 'install', 1) {
|
|||||||
mode => 0765,
|
mode => 0765,
|
||||||
require => Exec["exec mkdir -p ${vhost['docroot']} @ key ${key}"]
|
require => Exec["exec mkdir -p ${vhost['docroot']} @ key ${key}"]
|
||||||
}
|
}
|
||||||
}
|
} elsif !(downcase($::provisioner_type) in $apache_provider_types)
|
||||||
|
|
||||||
if !(downcase($::provisioner_type) in ['virtualbox', 'vmware_fusion'])
|
|
||||||
and ! defined(File[$vhost['docroot']])
|
and ! defined(File[$vhost['docroot']])
|
||||||
{
|
{
|
||||||
file { $vhost['docroot']:
|
file { $vhost['docroot']:
|
||||||
@ -515,11 +514,11 @@ if hash_key_equals($apache_values, 'install', 1) {
|
|||||||
|
|
||||||
create_resources(apache::vhost, { "${key}" => merge($vhost, {
|
create_resources(apache::vhost, { "${key}" => merge($vhost, {
|
||||||
'custom_fragment' => template('puphpet/apache/custom_fragment.erb'),
|
'custom_fragment' => template('puphpet/apache/custom_fragment.erb'),
|
||||||
'ssl' => 'ssl' in $vhost and str2bool($vhost['ssl']) ? { true => true, default => false },
|
'ssl' => 'ssl' in $vhost and str2bool($vhost['ssl']) ? { true => true, default => false },
|
||||||
'ssl_cert' => 'ssl_cert' in $vhost and $vhost['ssl_cert'] ? { undef => undef, '' => undef, default => $vhost['ssl_cert'] },
|
'ssl_cert' => hash_key_true($vhost, 'ssl_cert') ? { true => $vhost['ssl_cert'], default => undef },
|
||||||
'ssl_key' => 'ssl_key' in $vhost and $vhost['ssl_key'] ? { undef => undef, '' => undef, default => $vhost['ssl_key'] },
|
'ssl_key' => hash_key_true($vhost, 'ssl_key') ? { true => $vhost['ssl_key'], default => undef },
|
||||||
'ssl_chain' => 'ssl_chain' in $vhost and $vhost['ssl_chain'] ? { undef => undef, '' => undef, default => $vhost['ssl_chain'] },
|
'ssl_chain' => hash_key_true($vhost, 'ssl_chain') ? { true => $vhost['ssl_chain'], default => undef },
|
||||||
'ssl_certs_dir' => 'ssl_certs_dir' in $vhost and $vhost['ssl_certs_dir'] ? { undef => undef, '' => undef, default => $vhost['ssl_certs_dir'] }
|
'ssl_certs_dir' => hash_key_true($vhost, 'ssl_certs_dir') ? { true => $vhost['ssl_certs_dir'], default => undef }
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -578,33 +577,25 @@ if hash_key_equals($nginx_values, 'install', 1) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$webroot_location = $puphpet::params::nginx_webroot_location
|
$webroot_location = $puphpet::params::nginx_webroot_location
|
||||||
|
$nginx_provider_types = ['virtualbox', 'vmware_fusion', 'vmware_desktop', 'parallels']
|
||||||
|
|
||||||
exec { "exec mkdir -p ${webroot_location}":
|
exec { "exec mkdir -p ${webroot_location}":
|
||||||
command => "mkdir -p ${webroot_location}",
|
command => "mkdir -p ${webroot_location}",
|
||||||
creates => $webroot_location,
|
creates => $webroot_location,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (downcase($::provisioner_type) in ['virtualbox', 'vmware_fusion'])
|
if (downcase($::provisioner_type) in $nginx_provider_types) and ! defined(File[$webroot_location]) {
|
||||||
and ! defined(File[$webroot_location])
|
|
||||||
{
|
|
||||||
file { $webroot_location:
|
file { $webroot_location:
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
mode => 0775,
|
mode => 0775,
|
||||||
require => [
|
require => Exec["exec mkdir -p ${webroot_location}"],
|
||||||
Exec["exec mkdir -p ${webroot_location}"],
|
|
||||||
Group['www-data']
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
} elsif ! (downcase($::provisioner_type) in $nginx_provider_types) and ! defined(File[$webroot_location]) {
|
||||||
|
|
||||||
if !(downcase($::provisioner_type) in ['virtualbox', 'vmware_fusion'])
|
|
||||||
and ! defined(File[$webroot_location])
|
|
||||||
{
|
|
||||||
file { $webroot_location:
|
file { $webroot_location:
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
group => 'www-data',
|
|
||||||
mode => 0775,
|
mode => 0775,
|
||||||
|
group => 'www-data',
|
||||||
require => [
|
require => [
|
||||||
Exec["exec mkdir -p ${webroot_location}"],
|
Exec["exec mkdir -p ${webroot_location}"],
|
||||||
Group['www-data']
|
Group['www-data']
|
||||||
@ -626,12 +617,10 @@ if hash_key_equals($nginx_values, 'install', 1) {
|
|||||||
if hash_key_equals($php_values, 'install', 1) {
|
if hash_key_equals($php_values, 'install', 1) {
|
||||||
$php5_fpm_sock = '/var/run/php5-fpm.sock'
|
$php5_fpm_sock = '/var/run/php5-fpm.sock'
|
||||||
|
|
||||||
if $php_values['version'] == undef {
|
$fastcgi_pass = $php_values['version'] ? {
|
||||||
$fastcgi_pass = null
|
'53' => '127.0.0.1:9000',
|
||||||
} elsif $php_values['version'] == '53' {
|
undef => null,
|
||||||
$fastcgi_pass = '127.0.0.1:9000'
|
default => "unix:${php5_fpm_sock}"
|
||||||
} else {
|
|
||||||
$fastcgi_pass = "unix:${php5_fpm_sock}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if $::osfamily == 'redhat' and $fastcgi_pass == "unix:${php5_fpm_sock}" {
|
if $::osfamily == 'redhat' and $fastcgi_pass == "unix:${php5_fpm_sock}" {
|
||||||
@ -641,7 +630,7 @@ if hash_key_equals($nginx_values, 'install', 1) {
|
|||||||
require => Package['nginx'],
|
require => Package['nginx'],
|
||||||
}
|
}
|
||||||
|
|
||||||
exec { "listen = 127.0.0.1:9000 => listen = ${php5_fpm_sock}":
|
exec { "'listen = 127.0.0.1:9000' => 'listen = ${php5_fpm_sock}'":
|
||||||
command => "perl -p -i -e 's#listen = 127.0.0.1:9000#listen = ${php5_fpm_sock}#gi' /etc/php-fpm.d/www.conf",
|
command => "perl -p -i -e 's#listen = 127.0.0.1:9000#listen = ${php5_fpm_sock}#gi' /etc/php-fpm.d/www.conf",
|
||||||
unless => "grep -c 'listen = 127.0.0.1:9000' '${php5_fpm_sock}'",
|
unless => "grep -c 'listen = 127.0.0.1:9000' '${php5_fpm_sock}'",
|
||||||
notify => [
|
notify => [
|
||||||
@ -651,29 +640,51 @@ if hash_key_equals($nginx_values, 'install', 1) {
|
|||||||
require => Exec["create ${php5_fpm_sock} file"]
|
require => Exec["create ${php5_fpm_sock} file"]
|
||||||
}
|
}
|
||||||
|
|
||||||
set_php5_fpm_sock_group_and_user { 'php_rhel':
|
set_nginx_php5_fpm_sock_group_and_user { 'php_rhel':
|
||||||
require => Exec["create ${php5_fpm_sock} file"],
|
require => Exec["create ${php5_fpm_sock} file"],
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
set_php5_fpm_sock_group_and_user { 'php':
|
set_nginx_php5_fpm_sock_group_and_user { 'php':
|
||||||
require => Package['nginx'],
|
require => Package['nginx'],
|
||||||
subscribe => Service['php5-fpm'],
|
subscribe => Service['php5-fpm'],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elsif hash_key_equals($hhvm_values, 'install', 1) {
|
} elsif hash_key_equals($hhvm_values, 'install', 1) {
|
||||||
$fastcgi_pass = '127.0.0.1:9000'
|
$fastcgi_pass = '127.0.0.1:9000'
|
||||||
|
|
||||||
set_php5_fpm_sock_group_and_user { 'hhvm':
|
|
||||||
require => Package['nginx'],
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$fastcgi_pass = ''
|
$fastcgi_pass = null
|
||||||
}
|
}
|
||||||
|
|
||||||
class { 'nginx': }
|
class { 'nginx': }
|
||||||
|
|
||||||
if count($nginx_values['vhosts']) > 0 {
|
if hash_key_equals($nginx_values['settings'], 'default_vhost', 1) {
|
||||||
each( $nginx_values['vhosts'] ) |$key, $vhost| {
|
$nginx_vhosts = merge($nginx_values['vhosts'], {
|
||||||
|
'default' => {
|
||||||
|
'server_name' => '_',
|
||||||
|
'server_aliases' => [],
|
||||||
|
'www_root' => '/var/www/html',
|
||||||
|
'listen_port' => 80,
|
||||||
|
'index_files' => ['index', 'index.html', 'index.htm', 'index.php'],
|
||||||
|
'envvars' => [],
|
||||||
|
'ssl' => '0',
|
||||||
|
'ssl_cert' => '',
|
||||||
|
'ssl_key' => '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
if ! defined(File[$puphpet::params::nginx_default_conf_location]) {
|
||||||
|
file { $puphpet::params::nginx_default_conf_location:
|
||||||
|
ensure => absent,
|
||||||
|
require => Package['nginx'],
|
||||||
|
notify => Class['nginx::service'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$nginx_vhosts = $nginx_values['vhosts']
|
||||||
|
}
|
||||||
|
|
||||||
|
if count($nginx_vhosts) > 0 {
|
||||||
|
each( $nginx_vhosts ) |$key, $vhost| {
|
||||||
exec { "exec mkdir -p ${vhost['www_root']} @ key ${key}":
|
exec { "exec mkdir -p ${vhost['www_root']} @ key ${key}":
|
||||||
command => "mkdir -p ${vhost['www_root']}",
|
command => "mkdir -p ${vhost['www_root']}",
|
||||||
creates => $vhost['www_root'],
|
creates => $vhost['www_root'],
|
||||||
@ -695,7 +706,7 @@ if hash_key_equals($nginx_values, 'install', 1) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
create_resources(nginx_vhost, $nginx_values['vhosts'])
|
create_resources(nginx_vhost, $nginx_vhosts)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ! defined(Firewall['100 tcp/443']) {
|
if ! defined(Firewall['100 tcp/443']) {
|
||||||
@ -743,41 +754,12 @@ define nginx_vhost (
|
|||||||
$fastcgi_param_parts = []
|
$fastcgi_param_parts = []
|
||||||
}
|
}
|
||||||
|
|
||||||
if $ssl == 0 or $ssl == false or $ssl == '' {
|
$ssl_set = value_true($ssl) ? { true => true, default => false, }
|
||||||
$ssl_set = false
|
$ssl_cert_set = value_true($ssl_cert) ? { true => $ssl_cert, default => $puphpet::params::ssl_cert_location, }
|
||||||
} else {
|
$ssl_key_set = value_true($ssl_key) ? { true => $ssl_key, default => $puphpet::params::ssl_key_location, }
|
||||||
$ssl_set = true
|
$ssl_port_set = value_true($ssl_port) ? { true => $ssl_port, default => '443', }
|
||||||
}
|
$rewrite_to_https_set = value_true($rewrite_to_https) ? { true => true, default => false, }
|
||||||
|
$spdy_set = value_true($spdy) ? { true => on, default => off, }
|
||||||
if $ssl_cert == 0 or $ssl_cert == false or $ssl_cert == '' {
|
|
||||||
$ssl_cert_set = $puphpet::params::ssl_cert_location
|
|
||||||
} else {
|
|
||||||
$ssl_cert_set = $ssl_cert
|
|
||||||
}
|
|
||||||
|
|
||||||
if $ssl_key == 0 or $ssl_key == false or $ssl_key == '' {
|
|
||||||
$ssl_key_set = $puphpet::params::ssl_key_location
|
|
||||||
} else {
|
|
||||||
$ssl_key_set = $ssl_key
|
|
||||||
}
|
|
||||||
|
|
||||||
if $ssl_port == 0 or $ssl_port == false or $ssl_port == '' {
|
|
||||||
$ssl_port_set = '443'
|
|
||||||
} else {
|
|
||||||
$ssl_port_set = $ssl_port
|
|
||||||
}
|
|
||||||
|
|
||||||
if $rewrite_to_https == 0 or $rewrite_to_https == false or $rewrite_to_https == '' {
|
|
||||||
$rewrite_to_https_set = false
|
|
||||||
} else {
|
|
||||||
$rewrite_to_https_set = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if $spdy == off or $spdy == 0 or $spdy == false or $spdy == '' {
|
|
||||||
$spdy_set = off
|
|
||||||
} else {
|
|
||||||
$spdy_set = on
|
|
||||||
}
|
|
||||||
|
|
||||||
nginx::resource::vhost { $server_name:
|
nginx::resource::vhost { $server_name:
|
||||||
server_name => $merged_server_name,
|
server_name => $merged_server_name,
|
||||||
@ -798,6 +780,19 @@ define nginx_vhost (
|
|||||||
|
|
||||||
$fastcgi_param = concat($fastcgi_param_parts, $envvars)
|
$fastcgi_param = concat($fastcgi_param_parts, $envvars)
|
||||||
|
|
||||||
|
$fastcgi_pass_hash = fastcgi_pass ? {
|
||||||
|
null => {},
|
||||||
|
'' => {},
|
||||||
|
default => {'fastcgi_pass' => $fastcgi_pass},
|
||||||
|
}
|
||||||
|
|
||||||
|
$location_cfg_append = merge({
|
||||||
|
'fastcgi_split_path_info' => '^(.+\.php)(/.+)$',
|
||||||
|
'fastcgi_param' => $fastcgi_param,
|
||||||
|
'fastcgi_index' => 'index.php',
|
||||||
|
'include' => 'fastcgi_params'
|
||||||
|
}, $fastcgi_pass_hash)
|
||||||
|
|
||||||
nginx::resource::location { "${server_name}-php":
|
nginx::resource::location { "${server_name}-php":
|
||||||
ensure => present,
|
ensure => present,
|
||||||
vhost => $server_name,
|
vhost => $server_name,
|
||||||
@ -806,20 +801,17 @@ define nginx_vhost (
|
|||||||
try_files => ['$uri', '$uri/', "/${try_files}?\$args"],
|
try_files => ['$uri', '$uri/', "/${try_files}?\$args"],
|
||||||
ssl => $ssl_set,
|
ssl => $ssl_set,
|
||||||
www_root => $www_root,
|
www_root => $www_root,
|
||||||
location_cfg_append => {
|
location_cfg_append => $location_cfg_append,
|
||||||
'fastcgi_split_path_info' => '^(.+\.php)(/.+)$',
|
|
||||||
'fastcgi_param' => $fastcgi_param,
|
|
||||||
'fastcgi_pass' => $fastcgi_pass,
|
|
||||||
'fastcgi_index' => 'index.php',
|
|
||||||
'include' => 'fastcgi_params'
|
|
||||||
},
|
|
||||||
notify => Class['nginx::service'],
|
notify => Class['nginx::service'],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
define set_php5_fpm_sock_group_and_user (){
|
define set_nginx_php5_fpm_sock_group_and_user () {
|
||||||
exec { 'set php5_fpm_sock group and user':
|
exec { 'set php5_fpm_sock group and user':
|
||||||
command => "chmod 660 ${php5_fpm_sock} && chown www-data ${php5_fpm_sock} && chgrp www-data ${php5_fpm_sock} && touch /.puphpet-stuff/php5_fpm_sock",
|
command => "chmod 660 ${php5_fpm_sock} && \
|
||||||
|
chown www-data ${php5_fpm_sock} && \
|
||||||
|
chgrp www-data ${php5_fpm_sock} && \
|
||||||
|
touch /.puphpet-stuff/php5_fpm_sock",
|
||||||
creates => '/.puphpet-stuff/php5_fpm_sock',
|
creates => '/.puphpet-stuff/php5_fpm_sock',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -998,7 +990,7 @@ if hash_key_equals($php_values, 'install', 1) {
|
|||||||
{
|
{
|
||||||
puphpet::ini { 'sendmail_path':
|
puphpet::ini { 'sendmail_path':
|
||||||
entry => 'CUSTOM/sendmail_path',
|
entry => 'CUSTOM/sendmail_path',
|
||||||
value => '/usr/bin/env catchmail',
|
value => "${mailcatcher_values['settings']['mailcatcher_path']}/catchmail -f",
|
||||||
php_version => $php_values['version'],
|
php_version => $php_values['version'],
|
||||||
webserver => $php_webserver_service_ini
|
webserver => $php_webserver_service_ini
|
||||||
}
|
}
|
||||||
@ -1096,7 +1088,7 @@ if hash_key_equals($xhprof_values, 'install', 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if hash_key_equals($apache_values, 'install', 1) {
|
if hash_key_equals($apache_values, 'install', 1) {
|
||||||
$xhprof_webroot_location = $puphpet::params::apache_webroot_location
|
$xhprof_webroot_location = '/var/www/default'
|
||||||
$xhprof_webserver_service = 'httpd'
|
$xhprof_webserver_service = 'httpd'
|
||||||
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
||||||
$xhprof_webroot_location = $puphpet::params::nginx_webroot_location
|
$xhprof_webroot_location = $puphpet::params::nginx_webroot_location
|
||||||
@ -1216,11 +1208,11 @@ if hash_key_equals($mysql_values, 'install', 1) {
|
|||||||
|
|
||||||
if hash_key_equals($mysql_values, 'adminer', 1) and $mysql_php_installed {
|
if hash_key_equals($mysql_values, 'adminer', 1) and $mysql_php_installed {
|
||||||
if hash_key_equals($apache_values, 'install', 1) {
|
if hash_key_equals($apache_values, 'install', 1) {
|
||||||
$mysql_adminer_webroot_location = $puphpet::params::apache_webroot_location
|
$mysql_adminer_webroot_location = '/var/www/default'
|
||||||
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
||||||
$mysql_adminer_webroot_location = $puphpet::params::nginx_webroot_location
|
$mysql_adminer_webroot_location = $puphpet::params::nginx_webroot_location
|
||||||
} else {
|
} else {
|
||||||
$mysql_adminer_webroot_location = $puphpet::params::apache_webroot_location
|
$mysql_adminer_webroot_location = '/var/www/default'
|
||||||
}
|
}
|
||||||
|
|
||||||
class { 'puphpet::adminer':
|
class { 'puphpet::adminer':
|
||||||
@ -1329,11 +1321,11 @@ if hash_key_equals($postgresql_values, 'install', 1) {
|
|||||||
|
|
||||||
if hash_key_equals($postgresql_values, 'adminer', 1) and $postgresql_php_installed {
|
if hash_key_equals($postgresql_values, 'adminer', 1) and $postgresql_php_installed {
|
||||||
if hash_key_equals($apache_values, 'install', 1) {
|
if hash_key_equals($apache_values, 'install', 1) {
|
||||||
$postgresql_adminer_webroot_location = $puphpet::params::apache_webroot_location
|
$postgresql_adminer_webroot_location = '/var/www/default'
|
||||||
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
||||||
$postgresql_adminer_webroot_location = $puphpet::params::nginx_webroot_location
|
$postgresql_adminer_webroot_location = $puphpet::params::nginx_webroot_location
|
||||||
} else {
|
} else {
|
||||||
$postgresql_adminer_webroot_location = $puphpet::params::apache_webroot_location
|
$postgresql_adminer_webroot_location = '/var/www/default'
|
||||||
}
|
}
|
||||||
|
|
||||||
class { 'puphpet::adminer':
|
class { 'puphpet::adminer':
|
||||||
@ -1364,7 +1356,7 @@ define postgresql_db (
|
|||||||
$table = "${name}.*"
|
$table = "${name}.*"
|
||||||
|
|
||||||
exec{ "${name}-import":
|
exec{ "${name}-import":
|
||||||
command => "psql ${name} < ${sql_file}",
|
command => "sudo -u postgres psql ${name} < ${sql_file}",
|
||||||
logoutput => true,
|
logoutput => true,
|
||||||
refreshonly => $refresh,
|
refreshonly => $refresh,
|
||||||
require => Postgresql::Server::Db[$name],
|
require => Postgresql::Server::Db[$name],
|
||||||
@ -1491,11 +1483,11 @@ if hash_key_equals($mariadb_values, 'install', 1) {
|
|||||||
|
|
||||||
if hash_key_equals($mariadb_values, 'adminer', 1) and $mariadb_php_installed {
|
if hash_key_equals($mariadb_values, 'adminer', 1) and $mariadb_php_installed {
|
||||||
if hash_key_equals($apache_values, 'install', 1) {
|
if hash_key_equals($apache_values, 'install', 1) {
|
||||||
$mariadb_adminer_webroot_location = $puphpet::params::apache_webroot_location
|
$mariadb_adminer_webroot_location = '/var/www/default'
|
||||||
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
||||||
$mariadb_adminer_webroot_location = $puphpet::params::nginx_webroot_location
|
$mariadb_adminer_webroot_location = $puphpet::params::nginx_webroot_location
|
||||||
} else {
|
} else {
|
||||||
$mariadb_adminer_webroot_location = $puphpet::params::apache_webroot_location
|
$mariadb_adminer_webroot_location = '/var/www/default'
|
||||||
}
|
}
|
||||||
|
|
||||||
class { 'puphpet::adminer':
|
class { 'puphpet::adminer':
|
||||||
@ -1662,7 +1654,7 @@ if $beanstalkd_values == undef {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if hash_key_equals($apache_values, 'install', 1) {
|
if hash_key_equals($apache_values, 'install', 1) {
|
||||||
$beanstalk_console_webroot_location = "${puphpet::params::apache_webroot_location}/beanstalk_console"
|
$beanstalk_console_webroot_location = '/var/www/default/beanstalk_console'
|
||||||
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
} elsif hash_key_equals($nginx_values, 'install', 1) {
|
||||||
$beanstalk_console_webroot_location = "${puphpet::params::nginx_webroot_location}/beanstalk_console"
|
$beanstalk_console_webroot_location = "${puphpet::params::nginx_webroot_location}/beanstalk_console"
|
||||||
} else {
|
} else {
|
||||||
@ -1724,6 +1716,11 @@ if hash_key_equals($apache_values, 'install', 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if hash_key_equals($rabbitmq_values, 'install', 1) {
|
if hash_key_equals($rabbitmq_values, 'install', 1) {
|
||||||
|
if $::osfamily == 'redhat' {
|
||||||
|
Class['erlang'] -> Class['rabbitmq']
|
||||||
|
include 'erlang'
|
||||||
|
}
|
||||||
|
|
||||||
create_resources('class', { 'rabbitmq' => $rabbitmq_values['settings'] })
|
create_resources('class', { 'rabbitmq' => $rabbitmq_values['settings'] })
|
||||||
|
|
||||||
if hash_key_equals($php_values, 'install', 1) and ! defined(Php::Pecl::Module['amqp']) {
|
if hash_key_equals($php_values, 'install', 1) and ! defined(Php::Pecl::Module['amqp']) {
|
||||||
|
|||||||
15
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/Gemfile
vendored
Normal file
15
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/Gemfile
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
group :development, :test do
|
||||||
|
gem 'rake', :require => false
|
||||||
|
gem 'rspec-puppet', :require => false
|
||||||
|
gem 'puppetlabs_spec_helper', :require => false
|
||||||
|
gem 'puppet-lint', :require => false
|
||||||
|
gem 'rspec-system-puppet', '~>2.0.0'
|
||||||
|
end
|
||||||
|
|
||||||
|
if puppetversion = ENV['PUPPET_GEM_VERSION']
|
||||||
|
gem 'puppet', puppetversion, :require => false
|
||||||
|
else
|
||||||
|
gem 'puppet', :require => false
|
||||||
|
end
|
||||||
13
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/LICENSE
vendored
Normal file
13
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/LICENSE
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Copyright 2012-2014 Michael Stahnke
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
8
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/Modulefile
vendored
Normal file
8
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/Modulefile
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
name 'stahnma-epel'
|
||||||
|
version '0.1.0'
|
||||||
|
source 'http://github.com/stahnma/puppet-module-epel'
|
||||||
|
author 'stahnma'
|
||||||
|
license 'Apache License, Version 2.0'
|
||||||
|
summary 'Setup the EPEL package repo'
|
||||||
|
description 'Setup the EPEL package repo on Centos/RHEL et all'
|
||||||
|
project_page 'http://github.com/stahnma/puppet-module-epel'
|
||||||
90
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/README.md
vendored
Normal file
90
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/README.md
vendored
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
# Configure EPEL (Extra Repository for Enterprise Linux)
|
||||||
|
|
||||||
|
# About
|
||||||
|
This module basically just mimics the epel-release rpm. The same repos are
|
||||||
|
enabled/disabled and the GPG key is imported. In the end you will end up with
|
||||||
|
the EPEL repos configured.
|
||||||
|
|
||||||
|
The following Repos will be setup and enabled by default:
|
||||||
|
|
||||||
|
* epel
|
||||||
|
|
||||||
|
Other repositories that will setup but disabled (as per the epel-release setup)
|
||||||
|
|
||||||
|
* epel-debuginfo
|
||||||
|
* epel-source
|
||||||
|
* epel-testing
|
||||||
|
* epel-testing-debuginfo
|
||||||
|
* epel-testing-source
|
||||||
|
|
||||||
|
# Proxy
|
||||||
|
If you have an http proxy required to access the internet, you can use either
|
||||||
|
a class parameter in the _epel_ class, or edit the $proxy variable in the
|
||||||
|
params.pp file. By default no proxy is assumed.
|
||||||
|
|
||||||
|
# Why?
|
||||||
|
I am a big fan of EPEL. I actually was one of the people who helped get it
|
||||||
|
going. I am also the owner of the epel-release package, so in general this
|
||||||
|
module should stay fairly up to date with the official upstream package.
|
||||||
|
|
||||||
|
I just got sick of coding Puppet modules and basically having an assumption
|
||||||
|
that EPEL was setup or installed. I can now depend on this module instead.
|
||||||
|
|
||||||
|
I realize it is fairly trivial to get EPEL setup. Every now-and-then however
|
||||||
|
the path to epel-release changes because something changes in the package (mass
|
||||||
|
rebuild, rpm build macros updates, etc). This module will bypass the changing
|
||||||
|
URL and just setup the package mirrors.
|
||||||
|
|
||||||
|
This does mean that if you are looking for RPM macros that are normally
|
||||||
|
included with EPEL release, this will not have them.
|
||||||
|
|
||||||
|
# Futher Information
|
||||||
|
|
||||||
|
* [EPEL Wiki](http://fedoraproject.org/wiki/EPEL)
|
||||||
|
* [epel-release package information](http://mirrors.servercentral.net/fedora/epel/6/i386/repoview/epel-release.html)
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
|
||||||
|
* This is commonly used on Puppet Enterprise 3.x
|
||||||
|
* This was tested using Puppet 3.3.0 on Centos5/6
|
||||||
|
* This was tested using Puppet 3.1.1 on Amazon's AWS Linux
|
||||||
|
* I assume it will work on any RHEL variant (Amazon Linux is debatable as a variant)
|
||||||
|
|
||||||
|
# Lifecycle
|
||||||
|
* No functionality has been introduced that should break Puppet 2.6 or 2.7, but I am no longer testing these versions of Puppet as they are end-of-lifed from Puppet Labs.
|
||||||
|
|
||||||
|
## Unit tests
|
||||||
|
|
||||||
|
Install the necessary gems
|
||||||
|
|
||||||
|
bundle install
|
||||||
|
|
||||||
|
Run the RSpec and puppet-lint tests
|
||||||
|
|
||||||
|
bundle exec rake ci
|
||||||
|
|
||||||
|
## System tests
|
||||||
|
|
||||||
|
If you have Vagrant >=1.1.0 you can also run system tests:
|
||||||
|
|
||||||
|
RSPEC_SET=centos-64-x64 bundle exec rake spec:system
|
||||||
|
|
||||||
|
Available RSPEC_SET options are in .nodeset.yml
|
||||||
|
|
||||||
|
# License
|
||||||
|
Apache Software License 2.0
|
||||||
|
|
||||||
|
# Author/Contributors
|
||||||
|
* Chad Metcalf <metcalfc@gmail.com>
|
||||||
|
* Joseph Swick <joseph.swick@meltwater.com>
|
||||||
|
* Matthaus Owens <mlitteken@gmail.com>
|
||||||
|
* Michael Stahnke <stahnma@puppetlabs.com>
|
||||||
|
* Michael Stahnke <stahnma@websages.com>
|
||||||
|
* Pro Cabales <proletaryo@gmail.com>
|
||||||
|
* Proletaryo Cabales <proletaryo@gmail.com>
|
||||||
|
* Stefan Goethals <stefan@zipkid.eu>
|
||||||
|
* Tim Rupp <caphrim007@gmail.com>
|
||||||
|
* Trey Dockendorf <treydock@gmail.com>
|
||||||
|
* Troy Bollinger <troy@us.ibm.com>
|
||||||
|
* Vlastimil Holer <holer@ics.muni.cz>
|
||||||
|
* Ewoud Kohl van Wijngaarden <e.kohlvanwijngaarden@oxilion.nl>
|
||||||
17
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/Rakefile
vendored
Normal file
17
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/Rakefile
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
require 'puppetlabs_spec_helper/rake_tasks'
|
||||||
|
require 'puppet-lint/tasks/puppet-lint'
|
||||||
|
require 'rspec-system/rake_task'
|
||||||
|
|
||||||
|
task :default do
|
||||||
|
sh %{rake -T}
|
||||||
|
end
|
||||||
|
|
||||||
|
# Disable specific puppet-lint checks
|
||||||
|
PuppetLint.configuration.send("disable_80chars")
|
||||||
|
PuppetLint.configuration.send("disable_class_inherits_from_params_class")
|
||||||
|
|
||||||
|
desc "Run rspec-puppet and puppet-lint tasks"
|
||||||
|
task :ci => [
|
||||||
|
:lint,
|
||||||
|
:spec,
|
||||||
|
]
|
||||||
30
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/files/RPM-GPG-KEY-EPEL-5
vendored
Normal file
30
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/files/RPM-GPG-KEY-EPEL-5
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: GnuPG v1.2.6 (GNU/Linux)
|
||||||
|
|
||||||
|
mQGiBEXopTIRBACZDBMOoFOakAjaxw1LXjeSvh/kmE35fU1rXfM7T0AV31NATCLF
|
||||||
|
l5CQiNDA4oWreDThg2Bf6+LIVTsGQb1V+XXuLak4Em5yTYwMTVB//4/nMxQEbpl/
|
||||||
|
QB2XwlJ7EQ0vW+kiPDz/7pHJz1p1jADzd9sQQicMtzysS4qT2i5A23j0VwCg1PB/
|
||||||
|
lpYqo0ZhWTrevxKMa1n34FcD/REavj0hSLQFTaKNLHRotRTF8V0BajjSaTkUT4uk
|
||||||
|
/RTaZ8Kr1mTosVtosqmdIAA2XHxi8ZLiVPPSezJjfElsSqOAxEKPL0djfpp2wrTm
|
||||||
|
l/1iVnX+PZH5DRKCbjdCMLDJhYap7YUhcPsMGSeUKrwmBCBJUPc6DhjFvyhA9IMl
|
||||||
|
1T0+A/9SKTv94ToP/JYoCTHTgnG5MoVNafisfe0wojP2mWU4gRk8X4dNGKMj6lic
|
||||||
|
vM6gne3hESyjcqZSmr7yELPPGhI9MNauJ6Ob8cTR2T12Fmv9w03DD3MnBstR6vhP
|
||||||
|
QcqZKhc5SJYYY7oVfxlSOfF4xfwcHQKoD5TOKwIAQ6T8jyFpKbQkRmVkb3JhIEVQ
|
||||||
|
RUwgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iGQEExECACQFAkXopTICGwMFCRLM
|
||||||
|
AwAGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQEZzANiF1IfabmQCgzvE60MnHSOBa
|
||||||
|
ZXXF7uU2Vzu8EOkAoKg9h+j0NuNom6WUYZyJQt4zc5seuQINBEXopTYQCADapnR/
|
||||||
|
blrJ8FhlgNPl0X9S3JE/kygPbNXIqne4XBVYisVp0uzNCRUxNZq30MpY027JCs2J
|
||||||
|
nL2fMpwvx33f0phU029vrIZKA3CmnnwVsjcWfMJOVPBmVN7m5bGU68F+PdRIcDsl
|
||||||
|
PMOWRLkTBZOGolLgIbM4719fqA8etewILrX6uPvRDwywV7/sPCFpRcfNNBUY+Zx3
|
||||||
|
5bf4fnkaCKxgXgQS3AT+hGYhlzIqQVTkGNveHTnt4SSzgAqR9sSwQwqvEfVtYNeS
|
||||||
|
w5rDguLG41HQm1Hojv59HNYjH6F/S1rClZi21bLgZbKpCFX76qPt8CTw+iQLBPPd
|
||||||
|
yoOGHfzyp7nsfhUrAAMFB/9/H9Gpk822ZpBexQW4y3LGFo9ZSnmu+ueOZPU3SqDA
|
||||||
|
DW1ovZdYzGuJTGGM9oMl6bL8eZrcUBBOFaWge5wZczIE3hx2exEOkDdvq+MUDVD1
|
||||||
|
axmN45q/7h1NYRp5GQL2ZsoV4g9U2gMdzHOFtZCER6PP9ErVlfJpgBUCdSL93V4H
|
||||||
|
Sgpkk7znmTOklbCM6l/G/A6q4sCRqfzHwVSTiruyTBiU9lfROsAl8fjIq2OzWJ2T
|
||||||
|
P9sadBe1llUYaow7txYSUxssW+89avct35gIyrBbof5M+CBXyAOUaSWmpM2eub24
|
||||||
|
0qbqiSr/Y6Om0t6vSzR8gRk7g+1H6IE0Tt1IJCvCAMimiE8EGBECAA8FAkXopTYC
|
||||||
|
GwwFCRLMAwAACgkQEZzANiF1IfZQYgCgiZHCv4xb+sTHCn/otc1Ovvi/OgMAnRXY
|
||||||
|
bbsLFWOfmzAnNIGvFRWy+YHi
|
||||||
|
=MMNL
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
29
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/files/RPM-GPG-KEY-EPEL-6
vendored
Normal file
29
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/files/RPM-GPG-KEY-EPEL-6
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: GnuPG v1.4.5 (GNU/Linux)
|
||||||
|
|
||||||
|
mQINBEvSKUIBEADLGnUj24ZVKW7liFN/JA5CgtzlNnKs7sBg7fVbNWryiE3URbn1
|
||||||
|
JXvrdwHtkKyY96/ifZ1Ld3lE2gOF61bGZ2CWwJNee76Sp9Z+isP8RQXbG5jwj/4B
|
||||||
|
M9HK7phktqFVJ8VbY2jfTjcfxRvGM8YBwXF8hx0CDZURAjvf1xRSQJ7iAo58qcHn
|
||||||
|
XtxOAvQmAbR9z6Q/h/D+Y/PhoIJp1OV4VNHCbCs9M7HUVBpgC53PDcTUQuwcgeY6
|
||||||
|
pQgo9eT1eLNSZVrJ5Bctivl1UcD6P6CIGkkeT2gNhqindRPngUXGXW7Qzoefe+fV
|
||||||
|
QqJSm7Tq2q9oqVZ46J964waCRItRySpuW5dxZO34WM6wsw2BP2MlACbH4l3luqtp
|
||||||
|
Xo3Bvfnk+HAFH3HcMuwdaulxv7zYKXCfNoSfgrpEfo2Ex4Im/I3WdtwME/Gbnwdq
|
||||||
|
3VJzgAxLVFhczDHwNkjmIdPAlNJ9/ixRjip4dgZtW8VcBCrNoL+LhDrIfjvnLdRu
|
||||||
|
vBHy9P3sCF7FZycaHlMWP6RiLtHnEMGcbZ8QpQHi2dReU1wyr9QgguGU+jqSXYar
|
||||||
|
1yEcsdRGasppNIZ8+Qawbm/a4doT10TEtPArhSoHlwbvqTDYjtfV92lC/2iwgO6g
|
||||||
|
YgG9XrO4V8dV39Ffm7oLFfvTbg5mv4Q/E6AWo/gkjmtxkculbyAvjFtYAQARAQAB
|
||||||
|
tCFFUEVMICg2KSA8ZXBlbEBmZWRvcmFwcm9qZWN0Lm9yZz6JAjYEEwECACAFAkvS
|
||||||
|
KUICGw8GCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRA7Sd8qBgi4lR/GD/wLGPv9
|
||||||
|
qO39eyb9NlrwfKdUEo1tHxKdrhNz+XYrO4yVDTBZRPSuvL2yaoeSIhQOKhNPfEgT
|
||||||
|
9mdsbsgcfmoHxmGVcn+lbheWsSvcgrXuz0gLt8TGGKGGROAoLXpuUsb1HNtKEOwP
|
||||||
|
Q4z1uQ2nOz5hLRyDOV0I2LwYV8BjGIjBKUMFEUxFTsL7XOZkrAg/WbTH2PW3hrfS
|
||||||
|
WtcRA7EYonI3B80d39ffws7SmyKbS5PmZjqOPuTvV2F0tMhKIhncBwoojWZPExft
|
||||||
|
HpKhzKVh8fdDO/3P1y1Fk3Cin8UbCO9MWMFNR27fVzCANlEPljsHA+3Ez4F7uboF
|
||||||
|
p0OOEov4Yyi4BEbgqZnthTG4ub9nyiupIZ3ckPHr3nVcDUGcL6lQD/nkmNVIeLYP
|
||||||
|
x1uHPOSlWfuojAYgzRH6LL7Idg4FHHBA0to7FW8dQXFIOyNiJFAOT2j8P5+tVdq8
|
||||||
|
wB0PDSH8yRpn4HdJ9RYquau4OkjluxOWf0uRaS//SUcCZh+1/KBEOmcvBHYRZA5J
|
||||||
|
l/nakCgxGb2paQOzqqpOcHKvlyLuzO5uybMXaipLExTGJXBlXrbbASfXa/yGYSAG
|
||||||
|
iVrGz9CE6676dMlm8F+s3XXE13QZrXmjloc6jwOljnfAkjTGXjiB7OULESed96MR
|
||||||
|
XtfLk0W5Ab9pd7tKDR6QHI7rgHXfCopRnZ2VVQ==
|
||||||
|
=V/6I
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
29
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/files/RPM-GPG-KEY-EPEL-7
vendored
Normal file
29
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/files/RPM-GPG-KEY-EPEL-7
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||||
|
|
||||||
|
mQINBFKuaIQBEAC1UphXwMqCAarPUH/ZsOFslabeTVO2pDk5YnO96f+rgZB7xArB
|
||||||
|
OSeQk7B90iqSJ85/c72OAn4OXYvT63gfCeXpJs5M7emXkPsNQWWSju99lW+AqSNm
|
||||||
|
jYWhmRlLRGl0OO7gIwj776dIXvcMNFlzSPj00N2xAqjMbjlnV2n2abAE5gq6VpqP
|
||||||
|
vFXVyfrVa/ualogDVmf6h2t4Rdpifq8qTHsHFU3xpCz+T6/dGWKGQ42ZQfTaLnDM
|
||||||
|
jToAsmY0AyevkIbX6iZVtzGvanYpPcWW4X0RDPcpqfFNZk643xI4lsZ+Y2Er9Yu5
|
||||||
|
S/8x0ly+tmmIokaE0wwbdUu740YTZjCesroYWiRg5zuQ2xfKxJoV5E+Eh+tYwGDJ
|
||||||
|
n6HfWhRgnudRRwvuJ45ztYVtKulKw8QQpd2STWrcQQDJaRWmnMooX/PATTjCBExB
|
||||||
|
9dkz38Druvk7IkHMtsIqlkAOQMdsX1d3Tov6BE2XDjIG0zFxLduJGbVwc/6rIc95
|
||||||
|
T055j36Ez0HrjxdpTGOOHxRqMK5m9flFbaxxtDnS7w77WqzW7HjFrD0VeTx2vnjj
|
||||||
|
GqchHEQpfDpFOzb8LTFhgYidyRNUflQY35WLOzLNV+pV3eQ3Jg11UFwelSNLqfQf
|
||||||
|
uFRGc+zcwkNjHh5yPvm9odR1BIfqJ6sKGPGbtPNXo7ERMRypWyRz0zi0twARAQAB
|
||||||
|
tChGZWRvcmEgRVBFTCAoNykgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMB
|
||||||
|
AgAiBQJSrmiEAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBqL66iNSxk
|
||||||
|
5cfGD/4spqpsTjtDM7qpytKLHKruZtvuWiqt5RfvT9ww9GUUFMZ4ZZGX4nUXg49q
|
||||||
|
ixDLayWR8ddG/s5kyOi3C0uX/6inzaYyRg+Bh70brqKUK14F1BrrPi29eaKfG+Gu
|
||||||
|
MFtXdBG2a7OtPmw3yuKmq9Epv6B0mP6E5KSdvSRSqJWtGcA6wRS/wDzXJENHp5re
|
||||||
|
9Ism3CYydpy0GLRA5wo4fPB5uLdUhLEUDvh2KK//fMjja3o0L+SNz8N0aDZyn5Ax
|
||||||
|
CU9RB3EHcTecFgoy5umRj99BZrebR1NO+4gBrivIfdvD4fJNfNBHXwhSH9ACGCNv
|
||||||
|
HnXVjHQF9iHWApKkRIeh8Fr2n5dtfJEF7SEX8GbX7FbsWo29kXMrVgNqHNyDnfAB
|
||||||
|
VoPubgQdtJZJkVZAkaHrMu8AytwT62Q4eNqmJI1aWbZQNI5jWYqc6RKuCK6/F99q
|
||||||
|
thFT9gJO17+yRuL6Uv2/vgzVR1RGdwVLKwlUjGPAjYflpCQwWMAASxiv9uPyYPHc
|
||||||
|
ErSrbRG0wjIfAR3vus1OSOx3xZHZpXFfmQTsDP7zVROLzV98R3JwFAxJ4/xqeON4
|
||||||
|
vCPFU6OsT3lWQ8w7il5ohY95wmujfr6lk89kEzJdOTzcn7DBbUru33CQMGKZ3Evt
|
||||||
|
RjsC7FDbL017qxS+ZVA/HGkyfiu4cpgV8VUnbql5eAZ+1Ll6Dw==
|
||||||
|
=hdPa
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
11
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/lib/facter/os_maj_version.rb
vendored
Normal file
11
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/lib/facter/os_maj_version.rb
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# This is a simple fact to get the Major version of an OS without having to
|
||||||
|
# have the entire LSB suite installed. LSB seems to pull in about 300 megs of
|
||||||
|
# stuff I often don't require. This fact is quick to load so it shouldn't be
|
||||||
|
# much of an issue.
|
||||||
|
|
||||||
|
Facter.add(:os_maj_version) do
|
||||||
|
setcode do
|
||||||
|
v = Facter.value(:operatingsystemrelease)
|
||||||
|
v.split('.')[0].strip
|
||||||
|
end
|
||||||
|
end
|
||||||
135
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/manifests/init.pp
vendored
Normal file
135
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/manifests/init.pp
vendored
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
# Class epel
|
||||||
|
#
|
||||||
|
# Actions:
|
||||||
|
# Configure the proper repositories and import GPG keys
|
||||||
|
#
|
||||||
|
# Reqiures:
|
||||||
|
# You should probably be on an Enterprise Linux variant. (Centos, RHEL,
|
||||||
|
# Scientific, Oracle, Ascendos, et al)
|
||||||
|
#
|
||||||
|
# Sample Usage:
|
||||||
|
# include epel
|
||||||
|
#
|
||||||
|
class epel (
|
||||||
|
$epel_mirrorlist = $epel::params::epel_mirrorlist,
|
||||||
|
$epel_baseurl = $epel::params::epel_baseurl,
|
||||||
|
$epel_failovermethod = $epel::params::epel_failovermethod,
|
||||||
|
$epel_proxy = $epel::params::epel_proxy,
|
||||||
|
$epel_enabled = $epel::params::epel_enabled,
|
||||||
|
$epel_gpgcheck = $epel::params::epel_gpgcheck,
|
||||||
|
$epel_testing_baseurl = $epel::params::epel_testing_baseurl,
|
||||||
|
$epel_testing_failovermethod = $epel::params::epel_testing_failovermethod,
|
||||||
|
$epel_testing_proxy = $epel::params::epel_testing_proxy,
|
||||||
|
$epel_testing_enabled = $epel::params::epel_testing_enabled,
|
||||||
|
$epel_testing_gpgcheck = $epel::params::epel_testing_gpgcheck,
|
||||||
|
$epel_source_mirrorlist = $epel::params::epel_source_mirrorlist,
|
||||||
|
$epel_source_baseurl = $epel::params::epel_source_baseurl,
|
||||||
|
$epel_source_failovermethod = $epel::params::epel_source_failovermethod,
|
||||||
|
$epel_source_proxy = $epel::params::epel_source_proxy,
|
||||||
|
$epel_source_enabled = $epel::params::epel_source_enabled,
|
||||||
|
$epel_source_gpgcheck = $epel::params::epel_source_gpgcheck,
|
||||||
|
$epel_debuginfo_mirrorlist = $epel::params::epel_debuginfo_mirrorlist,
|
||||||
|
$epel_debuginfo_baseurl = $epel::params::epel_debuginfo_baseurl,
|
||||||
|
$epel_debuginfo_failovermethod = $epel::params::epel_debuginfo_failovermethod,
|
||||||
|
$epel_debuginfo_proxy = $epel::params::epel_debuginfo_proxy,
|
||||||
|
$epel_debuginfo_enabled = $epel::params::epel_debuginfo_enabled,
|
||||||
|
$epel_debuginfo_gpgcheck = $epel::params::epel_debuginfo_gpgcheck,
|
||||||
|
$epel_testing_source_baseurl = $epel::params::epel_testing_source_baseurl,
|
||||||
|
$epel_testing_source_failovermethod = $epel::params::epel_testing_source_failovermethod,
|
||||||
|
$epel_testing_source_proxy = $epel::params::epel_testing_source_proxy,
|
||||||
|
$epel_testing_source_enabled = $epel::params::epel_testing_source_enabled,
|
||||||
|
$epel_testing_source_gpgcheck = $epel::params::epel_testing_source_gpgcheck,
|
||||||
|
$epel_testing_debuginfo_baseurl = $epel::params::epel_testing_debuginfo_baseurl,
|
||||||
|
$epel_testing_debuginfo_failovermethod = $epel::params::epel_testing_debuginfo_failovermethod,
|
||||||
|
$epel_testing_debuginfo_proxy = $epel::params::epel_testing_debuginfo_proxy,
|
||||||
|
$epel_testing_debuginfo_enabled = $epel::params::epel_testing_debuginfo_enabled,
|
||||||
|
$epel_testing_debuginfo_gpgcheck = $epel::params::epel_testing_debuginfo_gpgcheck
|
||||||
|
) inherits epel::params {
|
||||||
|
|
||||||
|
if $::osfamily == 'RedHat' and $::operatingsystem !~ /Fedora|Amazon/ {
|
||||||
|
yumrepo { 'epel-testing':
|
||||||
|
baseurl => $epel_testing_baseurl,
|
||||||
|
failovermethod => $epel_testing_failovermethod,
|
||||||
|
proxy => $epel_testing_proxy,
|
||||||
|
enabled => $epel_testing_enabled,
|
||||||
|
gpgcheck => $epel_testing_gpgcheck,
|
||||||
|
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::os_maj_version}",
|
||||||
|
descr => "Extra Packages for Enterprise Linux ${::os_maj_version} - Testing - \$basearch ",
|
||||||
|
}
|
||||||
|
|
||||||
|
yumrepo { 'epel-testing-debuginfo':
|
||||||
|
baseurl => $epel_testing_debuginfo_baseurl,
|
||||||
|
failovermethod => $epel_testing_debuginfo_failovermethod,
|
||||||
|
proxy => $epel_testing_debuginfo_proxy,
|
||||||
|
enabled => $epel_testing_debuginfo_enabled,
|
||||||
|
gpgcheck => $epel_testing_debuginfo_gpgcheck,
|
||||||
|
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::os_maj_version}",
|
||||||
|
descr => "Extra Packages for Enterprise Linux ${::os_maj_version} - Testing - \$basearch - Debug",
|
||||||
|
}
|
||||||
|
|
||||||
|
yumrepo { 'epel-testing-source':
|
||||||
|
baseurl => $epel_testing_source_baseurl,
|
||||||
|
failovermethod => $epel_testing_source_failovermethod,
|
||||||
|
proxy => $epel_testing_source_proxy,
|
||||||
|
enabled => $epel_testing_source_enabled,
|
||||||
|
gpgcheck => $epel_testing_source_gpgcheck,
|
||||||
|
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::os_maj_version}",
|
||||||
|
descr => "Extra Packages for Enterprise Linux ${::os_maj_version} - Testing - \$basearch - Source",
|
||||||
|
}
|
||||||
|
|
||||||
|
yumrepo { 'epel':
|
||||||
|
mirrorlist => $epel_mirrorlist,
|
||||||
|
baseurl => $epel_baseurl,
|
||||||
|
failovermethod => $epel_failovermethod,
|
||||||
|
proxy => $epel_proxy,
|
||||||
|
enabled => $epel_enabled,
|
||||||
|
gpgcheck => $epel_gpgcheck,
|
||||||
|
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::os_maj_version}",
|
||||||
|
descr => "Extra Packages for Enterprise Linux ${::os_maj_version} - \$basearch",
|
||||||
|
}
|
||||||
|
|
||||||
|
yumrepo { 'epel-debuginfo':
|
||||||
|
mirrorlist => $epel_debuginfo_mirrorlist,
|
||||||
|
baseurl => $epel_debuginfo_baseurl,
|
||||||
|
failovermethod => $epel_debuginfo_failovermethod,
|
||||||
|
proxy => $epel_debuginfo_proxy,
|
||||||
|
enabled => $epel_debuginfo_enabled,
|
||||||
|
gpgcheck => $epel_debuginfo_gpgcheck,
|
||||||
|
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::os_maj_version}",
|
||||||
|
descr => "Extra Packages for Enterprise Linux ${::os_maj_version} - \$basearch - Debug",
|
||||||
|
}
|
||||||
|
|
||||||
|
yumrepo { 'epel-source':
|
||||||
|
mirrorlist => $epel_source_mirrorlist,
|
||||||
|
baseurl => $epel_source_baseurl,
|
||||||
|
failovermethod => $epel_source_failovermethod,
|
||||||
|
proxy => $epel_source_proxy,
|
||||||
|
enabled => $epel_source_enabled,
|
||||||
|
gpgcheck => $epel_source_gpgcheck,
|
||||||
|
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::os_maj_version}",
|
||||||
|
descr => "Extra Packages for Enterprise Linux ${::os_maj_version} - \$basearch - Source",
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::os_maj_version}":
|
||||||
|
ensure => present,
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
mode => '0644',
|
||||||
|
source => "puppet:///modules/epel/RPM-GPG-KEY-EPEL-${::os_maj_version}",
|
||||||
|
}
|
||||||
|
|
||||||
|
epel::rpm_gpg_key{ "EPEL-${::os_maj_version}":
|
||||||
|
path => "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${::os_maj_version}",
|
||||||
|
before => Yumrepo['epel','epel-source','epel-debuginfo','epel-testing','epel-testing-source','epel-testing-debuginfo'],
|
||||||
|
}
|
||||||
|
|
||||||
|
} elsif $::osfamily == 'RedHat' and $::operatingsystem == 'Amazon' {
|
||||||
|
yumrepo { 'epel':
|
||||||
|
enabled => $epel_enabled,
|
||||||
|
gpgcheck => $epel_gpgcheck,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
notice ("Your operating system ${::operatingsystem} will not have the EPEL repository applied")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
45
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/manifests/params.pp
vendored
Normal file
45
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/manifests/params.pp
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Optional parameters in setting up EPEL
|
||||||
|
class epel::params {
|
||||||
|
# Setting to 'absent' will fall back to the yum.conf
|
||||||
|
# Setting proxy here will be the default for all repos.
|
||||||
|
#
|
||||||
|
# If you wish to set a proxy for an individual set of repos,
|
||||||
|
# you can declare $proxy in that class, and should scope to
|
||||||
|
# the most specific declaration of proxy.
|
||||||
|
$proxy = 'absent'
|
||||||
|
|
||||||
|
$epel_mirrorlist = "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-${::os_maj_version}&arch=\$basearch"
|
||||||
|
$epel_baseurl = 'absent'
|
||||||
|
$epel_failovermethod = 'priority'
|
||||||
|
$epel_proxy = $proxy
|
||||||
|
$epel_enabled = '1'
|
||||||
|
$epel_gpgcheck = '1'
|
||||||
|
$epel_testing_baseurl = "http://download.fedoraproject.org/pub/epel/testing/${::os_maj_version}/\$basearch"
|
||||||
|
$epel_testing_failovermethod = 'priority'
|
||||||
|
$epel_testing_proxy = $proxy
|
||||||
|
$epel_testing_enabled = '0'
|
||||||
|
$epel_testing_gpgcheck = '1'
|
||||||
|
$epel_source_mirrorlist = "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-${::os_maj_version}&arch=\$basearch"
|
||||||
|
$epel_source_baseurl = 'absent'
|
||||||
|
$epel_source_failovermethod = 'priority'
|
||||||
|
$epel_source_proxy = $proxy
|
||||||
|
$epel_source_enabled = '0'
|
||||||
|
$epel_source_gpgcheck = '1'
|
||||||
|
$epel_debuginfo_mirrorlist = "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-${::os_maj_version}&arch=\$basearch"
|
||||||
|
$epel_debuginfo_baseurl = 'absent'
|
||||||
|
$epel_debuginfo_failovermethod = 'priority'
|
||||||
|
$epel_debuginfo_proxy = $proxy
|
||||||
|
$epel_debuginfo_enabled = '0'
|
||||||
|
$epel_debuginfo_gpgcheck = '1'
|
||||||
|
$epel_testing_source_baseurl = "http://download.fedoraproject.org/pub/epel/testing/${::os_maj_version}/SRPMS"
|
||||||
|
$epel_testing_source_failovermethod = 'priority'
|
||||||
|
$epel_testing_source_proxy = $proxy
|
||||||
|
$epel_testing_source_enabled = '0'
|
||||||
|
$epel_testing_source_gpgcheck = '1'
|
||||||
|
$epel_testing_debuginfo_baseurl = "http://download.fedoraproject.org/pub/epel/testing/${::os_maj_version}/\$basearch/debug"
|
||||||
|
$epel_testing_debuginfo_failovermethod = 'priority'
|
||||||
|
$epel_testing_debuginfo_proxy = $proxy
|
||||||
|
$epel_testing_debuginfo_enabled = '0'
|
||||||
|
$epel_testing_debuginfo_gpgcheck = '1'
|
||||||
|
|
||||||
|
}
|
||||||
28
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/manifests/rpm_gpg_key.pp
vendored
Normal file
28
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/manifests/rpm_gpg_key.pp
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Define epel::rpm_gpg_key
|
||||||
|
#
|
||||||
|
# Actions:
|
||||||
|
# Import a RPM gpg key
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
#
|
||||||
|
# [*path*]
|
||||||
|
# Path of the RPM GPG key to import
|
||||||
|
#
|
||||||
|
# Reqiures:
|
||||||
|
# You should probably be on an Enterprise Linux variant. (Centos, RHEL, Scientific, Oracle, Ascendos, et al)
|
||||||
|
#
|
||||||
|
# Sample Usage:
|
||||||
|
# epel::rpm_gpg_key{ "EPEL-6":
|
||||||
|
# path => "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6"
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
define epel::rpm_gpg_key($path) {
|
||||||
|
# Given the path to a key, see if it is imported, if not, import it
|
||||||
|
exec { "import-${name}":
|
||||||
|
path => '/bin:/usr/bin:/sbin:/usr/sbin',
|
||||||
|
command => "rpm --import ${path}",
|
||||||
|
unless => "rpm -q gpg-pubkey-$(echo $(gpg --throw-keyids < ${path}) | cut --characters=11-18 | tr '[A-Z]' '[a-z]')",
|
||||||
|
require => File[$path],
|
||||||
|
logoutput => 'on_failure',
|
||||||
|
}
|
||||||
|
}
|
||||||
45
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/metadata.json
vendored
Normal file
45
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/metadata.json
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"name": "stahnma-epel",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"source": "http://github.com/stahnma/puppet-module-epel",
|
||||||
|
"author": "stahnma",
|
||||||
|
"license": "Apache License, Version 2.0",
|
||||||
|
"summary": "Setup the EPEL package repo",
|
||||||
|
"description": "Setup the EPEL package repo on Centos/RHEL et all",
|
||||||
|
"project_page": "http://github.com/stahnma/puppet-module-epel",
|
||||||
|
"dependencies": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"types": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"checksums": {
|
||||||
|
"Gemfile": "3189476f30a99858b367d955298fe469",
|
||||||
|
"LICENSE": "94f0b1430ad7e59227ccabf8232f81d5",
|
||||||
|
"Modulefile": "250a4370b189d3f2e68ffd359ee02bb5",
|
||||||
|
"README.md": "6b4c4d2e7f0f9c1b6197529fa1120c88",
|
||||||
|
"Rakefile": "946eced163d7f8e0da85bda4baa7fa9c",
|
||||||
|
"files/RPM-GPG-KEY-EPEL-5": "0466c259781def56dafe0a2cdc9de0c5",
|
||||||
|
"files/RPM-GPG-KEY-EPEL-6": "d865e6b948a74cb03bc3401c0b01b785",
|
||||||
|
"files/RPM-GPG-KEY-EPEL-7": "58fa8ae27c89f37b08429f04fd4a88cc",
|
||||||
|
"lib/facter/os_maj_version.rb": "806fb856251b605df379e973c716a41c",
|
||||||
|
"manifests/init.pp": "61856de8db1eb00700e0a9a93aea506f",
|
||||||
|
"manifests/params.pp": "4fb2e283b4ba6e41abd7a914bdd001b8",
|
||||||
|
"manifests/rpm_gpg_key.pp": "69086f12752a14b200e462afaa59a93c",
|
||||||
|
"spec/classes/epel_spec.rb": "7e8e5973fdccb866e91ed00a3fd0af4c",
|
||||||
|
"spec/classes/shared_base.rb": "a6a46eb7225a1814b9343f32190ba75b",
|
||||||
|
"spec/classes/shared_debuginfo.rb": "1bd23934bc1f7d14d2491c7741f10299",
|
||||||
|
"spec/classes/shared_gpgkey.rb": "38a62fe24acfc9cc8d740d242c9f1c85",
|
||||||
|
"spec/classes/shared_source.rb": "6581989ed1ca2edd589ed98ecb08bdfa",
|
||||||
|
"spec/classes/shared_testing.rb": "50e936b9cf241c9849cf551961492532",
|
||||||
|
"spec/classes/shared_testing_debuginfo.rb": "41e8a2215d347246ff241f1b3a819c91",
|
||||||
|
"spec/classes/shared_testing_source.rb": "8cd827b2cb0b08b1633d70784417f946",
|
||||||
|
"spec/defines/rpm_gpg_key_spec.rb": "489fa716eaa2aba013089a6cf552c5a6",
|
||||||
|
"spec/spec_helper.rb": "a5ad64bd67aa3fe2512fa7ba505c8e8b",
|
||||||
|
"spec/spec_helper_system.rb": "d24a7ffdf4b67dbbd3ef5687292f51cf",
|
||||||
|
"spec/system/basic_spec.rb": "bc475b95f390134b31d905590bf8b039",
|
||||||
|
"spec/system/usage_spec.rb": "04506df5627ecbe975acd1fd0407ae40",
|
||||||
|
"spec/unit/facter/os_maj_version_spec.rb": "67ab2730991d4a8430f1115aad46bcea",
|
||||||
|
"tests/init.pp": "7c69b7adf2ba141cb62cfc9e0704d59e"
|
||||||
|
}
|
||||||
|
}
|
||||||
80
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/epel_spec.rb
vendored
Normal file
80
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/epel_spec.rb
vendored
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
require 'classes/shared_gpgkey'
|
||||||
|
require 'classes/shared_base'
|
||||||
|
require 'classes/shared_source'
|
||||||
|
require 'classes/shared_debuginfo'
|
||||||
|
require 'classes/shared_testing'
|
||||||
|
require 'classes/shared_testing_source'
|
||||||
|
require 'classes/shared_testing_debuginfo'
|
||||||
|
|
||||||
|
describe 'epel' do
|
||||||
|
it { should create_class('epel') }
|
||||||
|
it { should contain_class('epel::params') }
|
||||||
|
|
||||||
|
context "operatingsystem => #{default_facts[:operatingsystem]}" do
|
||||||
|
context 'os_maj_version => 6' do
|
||||||
|
include_context :base_6
|
||||||
|
include_context :gpgkey_6
|
||||||
|
include_context :epel_source_6
|
||||||
|
include_context :epel_debuginfo_6
|
||||||
|
include_context :epel_testing_6
|
||||||
|
include_context :epel_testing_source_6
|
||||||
|
include_context :epel_testing_debuginfo_6
|
||||||
|
|
||||||
|
let :facts do
|
||||||
|
default_facts.merge({
|
||||||
|
:operatingsystemrelease => '6.4',
|
||||||
|
:os_maj_version => '6',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'epel_baseurl => http://example.com/epel/6/x86_64' do
|
||||||
|
let(:params) {{ :epel_baseurl => "http://example.com/epel/6/x86_64" }}
|
||||||
|
it { should contain_yumrepo('epel').with('baseurl' => 'http://example.com/epel/6/x86_64') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'epel_mirrorlist => absent' do
|
||||||
|
let(:params) {{ :epel_mirrorlist => 'absent' }}
|
||||||
|
it { should contain_yumrepo('epel').with('mirrorlist' => 'absent') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'os_maj_version => 5' do
|
||||||
|
include_context :base_5
|
||||||
|
include_context :gpgkey_5
|
||||||
|
include_context :epel_source_5
|
||||||
|
include_context :epel_debuginfo_5
|
||||||
|
include_context :epel_testing_5
|
||||||
|
include_context :epel_testing_source_5
|
||||||
|
include_context :epel_testing_debuginfo_5
|
||||||
|
|
||||||
|
let :facts do
|
||||||
|
default_facts.merge({
|
||||||
|
:operatingsystemrelease => '5.9',
|
||||||
|
:os_maj_version => '5',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'operatingsystem => Amazon' do
|
||||||
|
let :facts do
|
||||||
|
default_facts.merge({
|
||||||
|
:operatingsystem => 'Amazon',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
it { should_not contain_yumrepo('epel-testing') }
|
||||||
|
it { should_not contain_yumrepo('epel-testing-debuginfo') }
|
||||||
|
it { should_not contain_yumrepo('epel-testing-source') }
|
||||||
|
it { should_not contain_yumrepo('epel-debuginfo') }
|
||||||
|
it { should_not contain_yumrepo('epel-source') }
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel').with({
|
||||||
|
'enabled' => '1',
|
||||||
|
'gpgcheck' => '1',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_base.rb
vendored
Normal file
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_base.rb
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
shared_context :base do
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel').with({
|
||||||
|
'failovermethod' => 'priority',
|
||||||
|
'proxy' => 'absent',
|
||||||
|
'enabled' => '1',
|
||||||
|
'gpgcheck' => '1',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :base_6 do
|
||||||
|
include_context :base
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel').with({
|
||||||
|
'mirrorlist' => "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 6 - $basearch",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :base_5 do
|
||||||
|
include_context :base
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel').with({
|
||||||
|
'mirrorlist' => "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 5 - $basearch",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_debuginfo.rb
vendored
Normal file
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_debuginfo.rb
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
shared_context :epel_debuginfo do
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-debuginfo').with({
|
||||||
|
'proxy' => 'absent',
|
||||||
|
'failovermethod' => 'priority',
|
||||||
|
'enabled' => '0',
|
||||||
|
'gpgcheck' => '1',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_debuginfo_6 do
|
||||||
|
include_context :epel_debuginfo
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-debuginfo').with({
|
||||||
|
'mirrorlist' => "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-6&arch=$basearch",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 6 - $basearch - Debug",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_debuginfo_5 do
|
||||||
|
include_context :epel_debuginfo
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-debuginfo').with({
|
||||||
|
'mirrorlist' => "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 5 - $basearch - Debug",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
37
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_gpgkey.rb
vendored
Normal file
37
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_gpgkey.rb
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
shared_context :gpgkey_6 do
|
||||||
|
it do
|
||||||
|
should contain_file("/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6").with({
|
||||||
|
'ensure' => 'present',
|
||||||
|
'owner' => 'root',
|
||||||
|
'group' => 'root',
|
||||||
|
'mode' => '0644',
|
||||||
|
'source' => "puppet:///modules/epel/RPM-GPG-KEY-EPEL-6",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_epel__rpm_gpg_key("EPEL-6").with({
|
||||||
|
'path' => "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6"
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :gpgkey_5 do
|
||||||
|
it do
|
||||||
|
should contain_file("/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5").with({
|
||||||
|
'ensure' => 'present',
|
||||||
|
'owner' => 'root',
|
||||||
|
'group' => 'root',
|
||||||
|
'mode' => '0644',
|
||||||
|
'source' => "puppet:///modules/epel/RPM-GPG-KEY-EPEL-5",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_epel__rpm_gpg_key("EPEL-5").with({
|
||||||
|
'path' => "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5"
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_source.rb
vendored
Normal file
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_source.rb
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
shared_context :epel_source do
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-source').with({
|
||||||
|
'proxy' => 'absent',
|
||||||
|
'failovermethod' => 'priority',
|
||||||
|
'enabled' => '0',
|
||||||
|
'gpgcheck' => '1',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_source_6 do
|
||||||
|
include_context :epel_source
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-source').with({
|
||||||
|
'mirrorlist' => "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-6&arch=$basearch",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 6 - $basearch - Source",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_source_5 do
|
||||||
|
include_context :epel_source
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-source').with({
|
||||||
|
'mirrorlist' => "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 5 - $basearch - Source",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_testing.rb
vendored
Normal file
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_testing.rb
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
shared_context :epel_testing do
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-testing').with({
|
||||||
|
'failovermethod' => 'priority',
|
||||||
|
'proxy' => 'absent',
|
||||||
|
'enabled' => '0',
|
||||||
|
'gpgcheck' => '1',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_testing_6 do
|
||||||
|
include_context :epel_testing
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-testing').with({
|
||||||
|
'baseurl' => "http://download.fedoraproject.org/pub/epel/testing/6/$basearch",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 6 - Testing - $basearch ",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_testing_5 do
|
||||||
|
include_context :epel_testing
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-testing').with({
|
||||||
|
'baseurl' => "http://download.fedoraproject.org/pub/epel/testing/5/$basearch",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 5 - Testing - $basearch ",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_testing_debuginfo.rb
vendored
Normal file
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_testing_debuginfo.rb
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
shared_context :epel_testing_debuginfo do
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-testing-debuginfo').with({
|
||||||
|
'failovermethod' => 'priority',
|
||||||
|
'proxy' => 'absent',
|
||||||
|
'enabled' => '0',
|
||||||
|
'gpgcheck' => '1',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_testing_debuginfo_6 do
|
||||||
|
include_context :epel_testing_debuginfo
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-testing-debuginfo').with({
|
||||||
|
'baseurl' => "http://download.fedoraproject.org/pub/epel/testing/6/$basearch/debug",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 6 - Testing - $basearch - Debug",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_testing_debuginfo_5 do
|
||||||
|
include_context :epel_testing_debuginfo
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-testing-debuginfo').with({
|
||||||
|
'baseurl' => "http://download.fedoraproject.org/pub/epel/testing/5/$basearch/debug",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 5 - Testing - $basearch - Debug",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_testing_source.rb
vendored
Normal file
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/classes/shared_testing_source.rb
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
shared_context :epel_testing_source do
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-testing-source').with({
|
||||||
|
'failovermethod' => 'priority',
|
||||||
|
'proxy' => 'absent',
|
||||||
|
'enabled' => '0',
|
||||||
|
'gpgcheck' => '1',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_testing_source_6 do
|
||||||
|
include_context :epel_testing_source
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-testing-source').with({
|
||||||
|
'baseurl' => "http://download.fedoraproject.org/pub/epel/testing/6/SRPMS",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 6 - Testing - $basearch - Source",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_context :epel_testing_source_5 do
|
||||||
|
include_context :epel_testing_source
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_yumrepo('epel-testing-source').with({
|
||||||
|
'baseurl' => "http://download.fedoraproject.org/pub/epel/testing/5/SRPMS",
|
||||||
|
'gpgkey' => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5",
|
||||||
|
'descr' => "Extra Packages for Enterprise Linux 5 - Testing - $basearch - Source",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
57
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/defines/rpm_gpg_key_spec.rb
vendored
Normal file
57
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/defines/rpm_gpg_key_spec.rb
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'epel::rpm_gpg_key' do
|
||||||
|
context 'os_maj_version => 6' do
|
||||||
|
let :facts do
|
||||||
|
default_facts.merge({
|
||||||
|
:operatingsystemrelease => '6.4',
|
||||||
|
:os_maj_version => '6',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
let :title do
|
||||||
|
'EPEL-6'
|
||||||
|
end
|
||||||
|
|
||||||
|
let :params do
|
||||||
|
{ :path => "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6" }
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_exec("import-#{title}").with({
|
||||||
|
'path' => '/bin:/usr/bin:/sbin:/usr/sbin',
|
||||||
|
'command' => "rpm --import #{params[:path]}",
|
||||||
|
'unless' => "rpm -q gpg-pubkey-$(echo $(gpg --throw-keyids < #{params[:path]}) | cut --characters=11-18 | tr '[A-Z]' '[a-z]')",
|
||||||
|
'require' => "File[#{params[:path]}]",
|
||||||
|
'logoutput' => 'on_failure',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'os_maj_version => 5' do
|
||||||
|
let :facts do
|
||||||
|
default_facts.merge({
|
||||||
|
:operatingsystemrelease => '5.9',
|
||||||
|
:os_maj_version => '5',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
let :title do
|
||||||
|
'EPEL-5'
|
||||||
|
end
|
||||||
|
|
||||||
|
let :params do
|
||||||
|
{ :path => "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5" }
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_exec("import-#{title}").with({
|
||||||
|
'path' => '/bin:/usr/bin:/sbin:/usr/sbin',
|
||||||
|
'command' => "rpm --import #{params[:path]}",
|
||||||
|
'unless' => "rpm -q gpg-pubkey-$(echo $(gpg --throw-keyids < #{params[:path]}) | cut --characters=11-18 | tr '[A-Z]' '[a-z]')",
|
||||||
|
'require' => "File[#{params[:path]}]",
|
||||||
|
'logoutput' => 'on_failure',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
8
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/spec_helper.rb
vendored
Normal file
8
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/spec_helper.rb
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||||
|
|
||||||
|
def default_facts
|
||||||
|
{
|
||||||
|
:osfamily => 'RedHat',
|
||||||
|
:operatingsystem => 'CentOS',
|
||||||
|
}
|
||||||
|
end
|
||||||
@ -4,22 +4,20 @@ require 'rspec-system-puppet/helpers'
|
|||||||
include RSpecSystemPuppet::Helpers
|
include RSpecSystemPuppet::Helpers
|
||||||
|
|
||||||
RSpec.configure do |c|
|
RSpec.configure do |c|
|
||||||
# Project root
|
# Project root for the this module's code
|
||||||
proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
||||||
|
|
||||||
# Enable colour
|
# Enable colour in Jenkins
|
||||||
c.tty = true
|
c.tty = true
|
||||||
|
|
||||||
|
c.include RSpecSystemPuppet::Helpers
|
||||||
|
|
||||||
# This is where we 'setup' the nodes before running our tests
|
# This is where we 'setup' the nodes before running our tests
|
||||||
c.before :suite do
|
c.before :suite do
|
||||||
# Install puppet
|
# Install puppet
|
||||||
puppet_install
|
puppet_install
|
||||||
puppet_master_install
|
puppet_master_install
|
||||||
|
|
||||||
# Replace mymodule with your module name
|
puppet_module_install(:source => proj_root, :module_name => 'epel')
|
||||||
puppet_module_install(:source => proj_root, :module_name => 'supervisord')
|
|
||||||
shell('puppet module install puppetlabs/stdlib')
|
|
||||||
shell('puppet module install puppetlabs/concat')
|
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/system/basic_spec.rb
vendored
Normal file
36
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/system/basic_spec.rb
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
require 'spec_helper_system'
|
||||||
|
|
||||||
|
describe 'epel class:' do
|
||||||
|
context puppet_agent do
|
||||||
|
its(:stderr) { should be_empty }
|
||||||
|
its(:exit_code) { should_not == 1 }
|
||||||
|
end
|
||||||
|
|
||||||
|
# Verify the os_maj_version fact is working
|
||||||
|
context shell 'facter --puppet os_maj_version' do
|
||||||
|
its(:stdout) { should_not be_empty }
|
||||||
|
its(:stderr) { should be_empty }
|
||||||
|
its(:exit_code) { should be_zero }
|
||||||
|
end
|
||||||
|
|
||||||
|
pp = "class { 'epel': }"
|
||||||
|
|
||||||
|
context puppet_apply pp do
|
||||||
|
its(:stderr) { should be_empty }
|
||||||
|
its(:exit_code) { should_not == 1 }
|
||||||
|
its(:refresh) { should be_nil }
|
||||||
|
its(:stderr) { should be_empty }
|
||||||
|
its(:exit_code) { should be_zero }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'test EPEL repo presence' do
|
||||||
|
facts = node.facts
|
||||||
|
|
||||||
|
# Only test for EPEL's presence if not Fedora
|
||||||
|
if facts['operatingsystem'] !~ /Fedora/
|
||||||
|
context shell '/usr/bin/yum-config-manager epel | grep -q "\[epel\]"' do
|
||||||
|
its(:exit_code) { should be_zero }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
60
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/system/usage_spec.rb
vendored
Normal file
60
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/system/usage_spec.rb
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
require 'spec_helper_system'
|
||||||
|
|
||||||
|
describe 'standage usage tests:' do
|
||||||
|
context 'test epel baseurl and mirrorlist' do
|
||||||
|
facts = node.facts
|
||||||
|
os_maj_version = facts['operatingsystemrelease'].split('.')[0]
|
||||||
|
pp = <<-EOS
|
||||||
|
class { 'epel':
|
||||||
|
epel_baseurl => 'http://dl.fedoraproject.org/pub/epel/#{os_maj_version}/x86_64/',
|
||||||
|
epel_mirrorlist => 'absent',
|
||||||
|
}
|
||||||
|
EOS
|
||||||
|
|
||||||
|
context puppet_apply pp do
|
||||||
|
its(:stderr) { should be_empty }
|
||||||
|
its(:exit_code) { should_not == 1 }
|
||||||
|
its(:refresh) { should be_nil }
|
||||||
|
its(:stderr) { should be_empty }
|
||||||
|
its(:exit_code) { should be_zero }
|
||||||
|
end
|
||||||
|
|
||||||
|
# Only test for EPEL's presence if not Fedora
|
||||||
|
if facts['operatingsystem'] !~ /Fedora/
|
||||||
|
# Test the yum config to ensure mirrorlist was emptied
|
||||||
|
context shell '/usr/bin/yum-config-manager epel | egrep "^mirrorlist ="' do
|
||||||
|
its(:stdout) { should =~ /mirrorlist =\s+/ }
|
||||||
|
end
|
||||||
|
|
||||||
|
# Test the yum config to ensure baseurl was defined
|
||||||
|
context shell '/usr/bin/yum-config-manager epel | egrep "^baseurl ="' do
|
||||||
|
its(:stdout) { should =~ /baseurl = http:\/\/dl.fedoraproject.org\/pub\/epel\/#{os_maj_version}\/x86_64\// }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'test epel-testing is enabled' do
|
||||||
|
facts = node.facts
|
||||||
|
pp = <<-EOS
|
||||||
|
class { 'epel':
|
||||||
|
epel_testing_enabled => '1',
|
||||||
|
}
|
||||||
|
EOS
|
||||||
|
|
||||||
|
context puppet_apply pp do
|
||||||
|
its(:stderr) { should be_empty }
|
||||||
|
its(:exit_code) { should_not == 1 }
|
||||||
|
its(:refresh) { should be_nil }
|
||||||
|
its(:stderr) { should be_empty }
|
||||||
|
its(:exit_code) { should be_zero }
|
||||||
|
end
|
||||||
|
|
||||||
|
# Only test for EPEL's presence if not Fedora
|
||||||
|
if facts['operatingsystem'] !~ /Fedora/
|
||||||
|
# Test the yum config to ensure epel-testing was enabled
|
||||||
|
context shell '/usr/bin/yum-config-manager epel-testing | grep -q "enabled = True"' do
|
||||||
|
its(:exit_code) { should be_zero }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
21
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/unit/facter/os_maj_version_spec.rb
vendored
Normal file
21
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/spec/unit/facter/os_maj_version_spec.rb
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'os_maj_version fact' do
|
||||||
|
before :each do
|
||||||
|
Facter.clear
|
||||||
|
end
|
||||||
|
|
||||||
|
context "on 5.9 operatingsystemrelease" do
|
||||||
|
it "should have os_maj_version => 5" do
|
||||||
|
Facter.fact(:operatingsystemrelease).stubs(:value).returns("5.9")
|
||||||
|
Facter.fact(:os_maj_version).value.should == "5"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "on 6.4 operatingsystemrelease" do
|
||||||
|
it "should have os_maj_version => 6" do
|
||||||
|
Facter.fact(:operatingsystemrelease).stubs(:value).returns("6.4")
|
||||||
|
Facter.fact(:os_maj_version).value.should == "6"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
3
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/tests/init.pp
vendored
Normal file
3
dev/vagrant/dolibarrdev/puphpet/puppet/modules/epel/tests/init.pp
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# And by test, I mean, run this thing for me using Puppet apply and I'll check
|
||||||
|
# it out.
|
||||||
|
include 'epel'
|
||||||
7
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/.fixtures.yml
vendored
Normal file
7
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/.fixtures.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fixtures:
|
||||||
|
repositories:
|
||||||
|
apt: git://github.com/puppetlabs/puppetlabs-apt.git
|
||||||
|
stdlib: git://github.com/puppetlabs/puppetlabs-stdlib.git
|
||||||
|
epel: git://github.com/stahnma/puppet-module-epel.git
|
||||||
|
symlinks:
|
||||||
|
erlang: "#{source_dir}"
|
||||||
35
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/.nodeset.yml
vendored
Normal file
35
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/.nodeset.yml
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
default_set: 'centos-64-x64'
|
||||||
|
sets:
|
||||||
|
'centos-59-x64':
|
||||||
|
nodes:
|
||||||
|
"main.foo.vm":
|
||||||
|
prefab: 'centos-59-x64'
|
||||||
|
'centos-64-x64':
|
||||||
|
nodes:
|
||||||
|
"main.foo.vm":
|
||||||
|
prefab: 'centos-64-x64'
|
||||||
|
'fedora-18-x64':
|
||||||
|
nodes:
|
||||||
|
"main.foo.vm":
|
||||||
|
prefab: 'fedora-18-x64'
|
||||||
|
'debian-607-x64':
|
||||||
|
nodes:
|
||||||
|
"main.foo.vm":
|
||||||
|
prefab: 'debian-607-x64'
|
||||||
|
'debian-70rc1-x64':
|
||||||
|
nodes:
|
||||||
|
"main.foo.vm":
|
||||||
|
prefab: 'debian-70rc1-x64'
|
||||||
|
'ubuntu-server-10044-x64':
|
||||||
|
nodes:
|
||||||
|
"main.foo.vm":
|
||||||
|
prefab: 'ubuntu-server-10044-x64'
|
||||||
|
'ubuntu-server-12042-x64':
|
||||||
|
nodes:
|
||||||
|
"main.foo.vm":
|
||||||
|
prefab: 'ubuntu-server-12042-x64'
|
||||||
|
'sles-11sp1-x64':
|
||||||
|
nodes:
|
||||||
|
"main.foo.vm":
|
||||||
|
prefab: 'sles-11sp1-x64'
|
||||||
1
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/.rspec
vendored
Normal file
1
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/.rspec
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
--format documentation
|
||||||
23
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/.travis.yml
vendored
Normal file
23
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/.travis.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
language: ruby
|
||||||
|
bundler_args: --without development
|
||||||
|
before_install: rm Gemfile.lock || true
|
||||||
|
rvm:
|
||||||
|
- 1.8.7
|
||||||
|
- 1.9.3
|
||||||
|
- 2.0.0
|
||||||
|
script: bundle exec rake test
|
||||||
|
env:
|
||||||
|
- PUPPET_VERSION="~> 2.7.0"
|
||||||
|
- PUPPET_VERSION="~> 3.1.0"
|
||||||
|
- PUPPET_VERSION="~> 3.2.0"
|
||||||
|
- PUPPET_VERSION="~> 3.3.0"
|
||||||
|
- PUPPET_VERSION="~> 3.4.0"
|
||||||
|
matrix:
|
||||||
|
exclude:
|
||||||
|
- rvm: 2.0.0
|
||||||
|
env: PUPPET_VERSION="~> 2.7.0"
|
||||||
|
- rvm: 2.0.0
|
||||||
|
env: PUPPET_VERSION="~> 3.1.0"
|
||||||
|
- rvm: 1.9.3
|
||||||
|
env: PUPPET_VERSION="~> 2.7.0"
|
||||||
15
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/Gemfile
vendored
Normal file
15
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/Gemfile
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
source "http://rubygems.org"
|
||||||
|
|
||||||
|
|
||||||
|
gem "rake"
|
||||||
|
gem "puppet", ENV['PUPPET_VERSION'] || '~> 3.2.0'
|
||||||
|
gem "puppet-lint"
|
||||||
|
gem "rspec-puppet", '~> 1.0.0'
|
||||||
|
gem "puppetlabs_spec_helper"
|
||||||
|
gem "rspec-system-puppet"
|
||||||
|
gem "vagrant-wrapper"
|
||||||
|
gem "puppet-syntax"
|
||||||
|
|
||||||
|
group :development do
|
||||||
|
gem "puppet-blacksmith"
|
||||||
|
end
|
||||||
94
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/Gemfile.lock
vendored
Normal file
94
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/Gemfile.lock
vendored
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
GEM
|
||||||
|
remote: http://rubygems.org/
|
||||||
|
specs:
|
||||||
|
builder (3.2.2)
|
||||||
|
diff-lcs (1.2.5)
|
||||||
|
excon (0.31.0)
|
||||||
|
facter (1.7.5)
|
||||||
|
fog (1.20.0)
|
||||||
|
builder
|
||||||
|
excon (~> 0.31.0)
|
||||||
|
formatador (~> 0.2.0)
|
||||||
|
mime-types
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
net-scp (~> 1.1)
|
||||||
|
net-ssh (>= 2.1.3)
|
||||||
|
nokogiri (>= 1.5.11)
|
||||||
|
formatador (0.2.4)
|
||||||
|
hiera (1.3.2)
|
||||||
|
json_pure
|
||||||
|
json_pure (1.8.1)
|
||||||
|
kwalify (0.7.2)
|
||||||
|
metaclass (0.0.4)
|
||||||
|
mime-types (1.25.1)
|
||||||
|
mocha (1.0.0)
|
||||||
|
metaclass (~> 0.0.1)
|
||||||
|
multi_json (1.8.4)
|
||||||
|
net-scp (1.1.2)
|
||||||
|
net-ssh (>= 2.6.5)
|
||||||
|
net-ssh (2.8.0)
|
||||||
|
nokogiri (1.5.11)
|
||||||
|
puppet (3.2.4)
|
||||||
|
facter (~> 1.6)
|
||||||
|
hiera (~> 1.0)
|
||||||
|
rgen (~> 0.6.5)
|
||||||
|
puppet-blacksmith (2.0.2)
|
||||||
|
nokogiri
|
||||||
|
puppet (>= 2.7.16)
|
||||||
|
rest-client
|
||||||
|
puppet-lint (0.3.2)
|
||||||
|
puppet-syntax (1.1.0)
|
||||||
|
puppet (>= 2.7.0)
|
||||||
|
rake
|
||||||
|
puppetlabs_spec_helper (0.4.1)
|
||||||
|
mocha (>= 0.10.5)
|
||||||
|
rake
|
||||||
|
rspec (>= 2.9.0)
|
||||||
|
rspec-puppet (>= 0.1.1)
|
||||||
|
rake (10.1.1)
|
||||||
|
rbvmomi (1.8.1)
|
||||||
|
builder
|
||||||
|
nokogiri (>= 1.4.1)
|
||||||
|
trollop
|
||||||
|
rest-client (1.6.7)
|
||||||
|
mime-types (>= 1.16)
|
||||||
|
rgen (0.6.6)
|
||||||
|
rspec (2.14.1)
|
||||||
|
rspec-core (~> 2.14.0)
|
||||||
|
rspec-expectations (~> 2.14.0)
|
||||||
|
rspec-mocks (~> 2.14.0)
|
||||||
|
rspec-core (2.14.8)
|
||||||
|
rspec-expectations (2.14.5)
|
||||||
|
diff-lcs (>= 1.1.3, < 2.0)
|
||||||
|
rspec-mocks (2.14.6)
|
||||||
|
rspec-puppet (1.0.1)
|
||||||
|
rspec
|
||||||
|
rspec-system (2.8.0)
|
||||||
|
fog (~> 1.18)
|
||||||
|
kwalify (~> 0.7.2)
|
||||||
|
mime-types (~> 1.16)
|
||||||
|
net-scp (~> 1.1)
|
||||||
|
net-ssh (~> 2.7)
|
||||||
|
nokogiri (~> 1.5.10)
|
||||||
|
rbvmomi (~> 1.6)
|
||||||
|
rspec (~> 2.14)
|
||||||
|
systemu (~> 2.5)
|
||||||
|
rspec-system-puppet (2.2.1)
|
||||||
|
rspec-system (~> 2.0)
|
||||||
|
systemu (2.6.3)
|
||||||
|
trollop (2.0)
|
||||||
|
vagrant-wrapper (1.2.1.1)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
puppet (~> 3.2.0)
|
||||||
|
puppet-blacksmith
|
||||||
|
puppet-lint
|
||||||
|
puppet-syntax
|
||||||
|
puppetlabs_spec_helper
|
||||||
|
rake
|
||||||
|
rspec-puppet (~> 1.0.0)
|
||||||
|
rspec-system-puppet
|
||||||
|
vagrant-wrapper
|
||||||
207
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/LICENSE
vendored
Normal file
207
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/LICENSE
vendored
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction, and
|
||||||
|
distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by the
|
||||||
|
copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all other
|
||||||
|
entities that control, are controlled by, or are under common control with
|
||||||
|
that entity. For the purposes of this definition, "control" means (i) the
|
||||||
|
power, direct or indirect, to cause the direction or management of such
|
||||||
|
entity, whether by contract or otherwise, or (ii) ownership of
|
||||||
|
fifty percent (50%) or more of the outstanding shares, or (iii) beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity exercising
|
||||||
|
permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation source,
|
||||||
|
and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical transformation
|
||||||
|
or translation of a Source form, including but not limited to compiled
|
||||||
|
object code, generated documentation, and conversions to
|
||||||
|
other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or Object
|
||||||
|
form, made available under the License, as indicated by a copyright notice
|
||||||
|
that is included in or attached to the work (an example is provided in the
|
||||||
|
Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object form,
|
||||||
|
that is based on (or derived from) the Work and for which the editorial
|
||||||
|
revisions, annotations, elaborations, or other modifications represent,
|
||||||
|
as a whole, an original work of authorship. For the purposes of this
|
||||||
|
License, Derivative Works shall not include works that remain separable
|
||||||
|
from, or merely link (or bind by name) to the interfaces of, the Work and
|
||||||
|
Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including the original
|
||||||
|
version of the Work and any modifications or additions to that Work or
|
||||||
|
Derivative Works thereof, that is intentionally submitted to Licensor for
|
||||||
|
inclusion in the Work by the copyright owner or by an individual or
|
||||||
|
Legal Entity authorized to submit on behalf of the copyright owner.
|
||||||
|
For the purposes of this definition, "submitted" means any form of
|
||||||
|
electronic, verbal, or written communication sent to the Licensor or its
|
||||||
|
representatives, including but not limited to communication on electronic
|
||||||
|
mailing lists, source code control systems, and issue tracking systems
|
||||||
|
that are managed by, or on behalf of, the Licensor for the purpose of
|
||||||
|
discussing and improving the Work, but excluding communication that is
|
||||||
|
conspicuously marked or otherwise designated in writing by the copyright
|
||||||
|
owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity on
|
||||||
|
behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License.
|
||||||
|
|
||||||
|
Subject to the terms and conditions of this License, each Contributor
|
||||||
|
hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
|
||||||
|
royalty-free, irrevocable copyright license to reproduce, prepare
|
||||||
|
Derivative Works of, publicly display, publicly perform, sublicense,
|
||||||
|
and distribute the Work and such Derivative Works in
|
||||||
|
Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License.
|
||||||
|
|
||||||
|
Subject to the terms and conditions of this License, each Contributor
|
||||||
|
hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
|
||||||
|
royalty-free, irrevocable (except as stated in this section) patent
|
||||||
|
license to make, have made, use, offer to sell, sell, import, and
|
||||||
|
otherwise transfer the Work, where such license applies only to those
|
||||||
|
patent claims licensable by such Contributor that are necessarily
|
||||||
|
infringed by their Contribution(s) alone or by combination of their
|
||||||
|
Contribution(s) with the Work to which such Contribution(s) was submitted.
|
||||||
|
If You institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
|
||||||
|
Contribution incorporated within the Work constitutes direct or
|
||||||
|
contributory patent infringement, then any patent licenses granted to
|
||||||
|
You under this License for that Work shall terminate as of the date such
|
||||||
|
litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution.
|
||||||
|
|
||||||
|
You may reproduce and distribute copies of the Work or Derivative Works
|
||||||
|
thereof in any medium, with or without modifications, and in Source or
|
||||||
|
Object form, provided that You meet the following conditions:
|
||||||
|
|
||||||
|
1. You must give any other recipients of the Work or Derivative Works a
|
||||||
|
copy of this License; and
|
||||||
|
|
||||||
|
2. You must cause any modified files to carry prominent notices stating
|
||||||
|
that You changed the files; and
|
||||||
|
|
||||||
|
3. You must retain, in the Source form of any Derivative Works that You
|
||||||
|
distribute, all copyright, patent, trademark, and attribution notices from
|
||||||
|
the Source form of the Work, excluding those notices that do not pertain
|
||||||
|
to any part of the Derivative Works; and
|
||||||
|
|
||||||
|
4. If the Work includes a "NOTICE" text file as part of its distribution,
|
||||||
|
then any Derivative Works that You distribute must include a readable copy
|
||||||
|
of the attribution notices contained within such NOTICE file, excluding
|
||||||
|
those notices that do not pertain to any part of the Derivative Works,
|
||||||
|
in at least one of the following places: within a NOTICE text file
|
||||||
|
distributed as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or, within a
|
||||||
|
display generated by the Derivative Works, if and wherever such
|
||||||
|
third-party notices normally appear. The contents of the NOTICE file are
|
||||||
|
for informational purposes only and do not modify the License.
|
||||||
|
You may add Your own attribution notices within Derivative Works that You
|
||||||
|
distribute, alongside or as an addendum to the NOTICE text from the Work,
|
||||||
|
provided that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and may
|
||||||
|
provide additional or different license terms and conditions for use,
|
||||||
|
reproduction, or distribution of Your modifications, or for any such
|
||||||
|
Derivative Works as a whole, provided Your use, reproduction, and
|
||||||
|
distribution of the Work otherwise complies with the conditions
|
||||||
|
stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions.
|
||||||
|
|
||||||
|
Unless You explicitly state otherwise, any Contribution intentionally
|
||||||
|
submitted for inclusion in the Work by You to the Licensor shall be under
|
||||||
|
the terms and conditions of this License, without any additional
|
||||||
|
terms or conditions. Notwithstanding the above, nothing herein shall
|
||||||
|
supersede or modify the terms of any separate license agreement you may
|
||||||
|
have executed with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks.
|
||||||
|
|
||||||
|
This License does not grant permission to use the trade names, trademarks,
|
||||||
|
service marks, or product names of the Licensor, except as required for
|
||||||
|
reasonable and customary use in describing the origin of the Work and
|
||||||
|
reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty.
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, Licensor
|
||||||
|
provides the Work (and each Contributor provides its Contributions)
|
||||||
|
on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||||
|
either express or implied, including, without limitation, any warranties
|
||||||
|
or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any risks
|
||||||
|
associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability.
|
||||||
|
|
||||||
|
In no event and under no legal theory, whether in tort
|
||||||
|
(including negligence), contract, or otherwise, unless required by
|
||||||
|
applicable law (such as deliberate and grossly negligent acts) or agreed
|
||||||
|
to in writing, shall any Contributor be liable to You for damages,
|
||||||
|
including any direct, indirect, special, incidental, or consequential
|
||||||
|
damages of any character arising as a result of this License or out of
|
||||||
|
the use or inability to use the Work (including but not limited to damages
|
||||||
|
for loss of goodwill, work stoppage, computer failure or malfunction,
|
||||||
|
or any and all other commercial damages or losses), even if such
|
||||||
|
Contributor has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability.
|
||||||
|
|
||||||
|
While redistributing the Work or Derivative Works thereof, You may choose
|
||||||
|
to offer, and charge a fee for, acceptance of support, warranty,
|
||||||
|
indemnity, or other liability obligations and/or rights consistent with
|
||||||
|
this License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf of any
|
||||||
|
other Contributor, and only if You agree to indemnify, defend, and hold
|
||||||
|
each Contributor harmless for any liability incurred by, or claims
|
||||||
|
asserted against, such Contributor by reason of your accepting any such
|
||||||
|
warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following boilerplate
|
||||||
|
notice, with the fields enclosed by brackets "[]" replaced with your own
|
||||||
|
identifying information. (Don't include the brackets!) The text should be
|
||||||
|
enclosed in the appropriate comment syntax for the file format. We also
|
||||||
|
recommend that a file or class name and description of purpose be included
|
||||||
|
on the same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright 2013 Gareth Rushgrove
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||||
|
or implied. See the License for the specific language governing
|
||||||
|
permissions and limitations under the License.
|
||||||
10
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/Modulefile
vendored
Normal file
10
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/Modulefile
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
name 'garethr-erlang'
|
||||||
|
version '0.3.0'
|
||||||
|
source 'git://github.com/garethr/garethr-erlang.git'
|
||||||
|
author 'Gareth Rushgrove'
|
||||||
|
summary 'Module for installing erlang from official repos'
|
||||||
|
description 'Install one of the official erlang packages'
|
||||||
|
license 'Apache License, Version 2.0'
|
||||||
|
dependency 'puppetlabs/apt'
|
||||||
|
dependency 'puppetlabs/stdlib'
|
||||||
|
dependency 'stahnma/epel'
|
||||||
28
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/README.md
vendored
Normal file
28
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/README.md
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
Puppet module for installing Erlang from alternative repositories.
|
||||||
|
|
||||||
|
On debian it will use the official repositories
|
||||||
|
mentioned on the [Erlang
|
||||||
|
docs](https://www.erlang-solutions.com/downloads/download-erlang-otp).
|
||||||
|
|
||||||
|
On Redhat 5 it'll use an additional EPEL repository hosted by
|
||||||
|
[Redhat](http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo).
|
||||||
|
|
||||||
|
On Redhat 6 it'll require EPEL.
|
||||||
|
|
||||||
|
On SUSE it'll use the official repos.
|
||||||
|
|
||||||
|
On Archlinux it'll use community repos.
|
||||||
|
|
||||||
|
This module is also available on the [Puppet
|
||||||
|
Forge](https://forge.puppetlabs.com/garethr/erlang)
|
||||||
|
|
||||||
|
[](http://travis-ci.org/garethr/garethr-erlang)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
The module includes a single class:
|
||||||
|
|
||||||
|
include 'erlang'
|
||||||
|
|
||||||
|
By default this sets up the repository and installs the erlang package.
|
||||||
35
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/Rakefile
vendored
Normal file
35
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/Rakefile
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
require 'puppetlabs_spec_helper/rake_tasks'
|
||||||
|
require 'puppet-lint/tasks/puppet-lint'
|
||||||
|
require 'puppet-syntax/tasks/puppet-syntax'
|
||||||
|
require 'rspec-system/rake_task'
|
||||||
|
|
||||||
|
begin
|
||||||
|
require 'puppet_blacksmith/rake_tasks'
|
||||||
|
rescue LoadError
|
||||||
|
end
|
||||||
|
|
||||||
|
PuppetLint.configuration.log_format = "%{path}:%{linenumber}:%{check}:%{KIND}:%{message}"
|
||||||
|
PuppetLint.configuration.fail_on_warnings = true
|
||||||
|
|
||||||
|
# Forsake support for Puppet 2.6.2 for the benefit of cleaner code.
|
||||||
|
# http://puppet-lint.com/checks/class_parameter_defaults/
|
||||||
|
PuppetLint.configuration.send('disable_class_parameter_defaults')
|
||||||
|
# http://puppet-lint.com/checks/class_inherits_from_params_class/
|
||||||
|
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
||||||
|
# http://puppet-lint.com/checks/80chars/
|
||||||
|
PuppetLint.configuration.send("disable_80chars")
|
||||||
|
|
||||||
|
exclude_paths = [
|
||||||
|
"pkg/**/*",
|
||||||
|
"vendor/**/*",
|
||||||
|
"spec/**/*",
|
||||||
|
]
|
||||||
|
PuppetLint.configuration.ignore_paths = exclude_paths
|
||||||
|
PuppetSyntax.exclude_paths = exclude_paths
|
||||||
|
|
||||||
|
desc "Run syntax, lint, and spec tests."
|
||||||
|
task :test => [
|
||||||
|
:syntax,
|
||||||
|
:lint,
|
||||||
|
:spec,
|
||||||
|
]
|
||||||
45
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/manifests/init.pp
vendored
Normal file
45
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/manifests/init.pp
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# == Class: erlang
|
||||||
|
#
|
||||||
|
# Module to install an up-to-date version of Erlang from the
|
||||||
|
# official repositories
|
||||||
|
#
|
||||||
|
# === Parameters
|
||||||
|
# [*version*]
|
||||||
|
# The package version to install, passed to ensure.
|
||||||
|
# Defaults to present.
|
||||||
|
#
|
||||||
|
class erlang (
|
||||||
|
$epel_enable = $erlang::params::epel_enable,
|
||||||
|
$key_signature = $erlang::params::key_signature,
|
||||||
|
$local_repo_location = $erlang::params::local_repo_location,
|
||||||
|
$package_name = $erlang::params::package_name,
|
||||||
|
$remote_repo_location = $erlang::params::remote_repo_location,
|
||||||
|
$remote_repo_key_location = $erlang::params::remote_repo_key_location,
|
||||||
|
$repos = $erlang::params::repos,
|
||||||
|
$version = 'present',
|
||||||
|
) inherits erlang::params {
|
||||||
|
validate_string($version)
|
||||||
|
|
||||||
|
case $::osfamily {
|
||||||
|
'Debian' : {
|
||||||
|
include '::apt'
|
||||||
|
include '::erlang::repo::apt'
|
||||||
|
}
|
||||||
|
'RedHat' : {
|
||||||
|
if $epel_enable {
|
||||||
|
# Include epel as this is a requirement for erlang in RHEL6.
|
||||||
|
include '::epel'
|
||||||
|
Class['epel'] -> Package[$package_name]
|
||||||
|
}
|
||||||
|
|
||||||
|
# This is only needed on RHEL5, RHEL6 has erlang in EPEL.
|
||||||
|
if $::operatingsystemrelease =~ /^5/ {
|
||||||
|
include '::erlang::repo::yum'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
package { $package_name: ensure => $version, }
|
||||||
|
}
|
||||||
29
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/manifests/params.pp
vendored
Normal file
29
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/manifests/params.pp
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# == Class: erlang::params
|
||||||
|
#
|
||||||
|
# Default paramaters setting repository details for different
|
||||||
|
# operating systems
|
||||||
|
#
|
||||||
|
class erlang::params {
|
||||||
|
$epel_enable = false
|
||||||
|
|
||||||
|
case $::osfamily {
|
||||||
|
'Debian' : {
|
||||||
|
$key_signature = 'D208507CA14F4FCA'
|
||||||
|
$package_name = 'erlang-nox'
|
||||||
|
$remote_repo_key_location = 'http://packages.erlang-solutions.com/debian/erlang_solutions.asc'
|
||||||
|
$remote_repo_location = 'http://packages.erlang-solutions.com/debian'
|
||||||
|
$repos = 'contrib'
|
||||||
|
}
|
||||||
|
'RedHat', 'SUSE', 'Archlinux' : {
|
||||||
|
$package_name = 'erlang'
|
||||||
|
|
||||||
|
if $::operatingsystemrelease =~ /^5/ {
|
||||||
|
$local_repo_location = '/etc/yum.repos.d/epel-erlang.repo'
|
||||||
|
$remote_repo_location = 'http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
fail("The ${module_name} module is not supported on an ${::osfamily} based system.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
41
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/manifests/repo/apt.pp
vendored
Normal file
41
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/manifests/repo/apt.pp
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# == Class: erlang::repo::apt
|
||||||
|
#
|
||||||
|
# Install an apt package repository containing Erlang.
|
||||||
|
# All parameters have sane default values in erlang::params.
|
||||||
|
#
|
||||||
|
# === Parameters
|
||||||
|
# [*key_signature*]
|
||||||
|
# The signature for the key used to sign packages in the repository.
|
||||||
|
#
|
||||||
|
# [*package_name*]
|
||||||
|
# Name of the Erlang package in the specified repository.
|
||||||
|
#
|
||||||
|
# [*remote_repo_key_location*]
|
||||||
|
# URL of the public key for the remote repository.
|
||||||
|
#
|
||||||
|
# [*remote_repo_location*]
|
||||||
|
# URL of the remote debian repository.
|
||||||
|
#
|
||||||
|
# [*repos*]
|
||||||
|
# Which of the standard repositories to install from the
|
||||||
|
# remote repo. For instance main, contrib, restricted.
|
||||||
|
#
|
||||||
|
class erlang::repo::apt(
|
||||||
|
$key_signature = $erlang::key_signature,
|
||||||
|
$package_name = $erlang::package_name,
|
||||||
|
$remote_repo_key_location = $erlang::remote_repo_key_location,
|
||||||
|
$remote_repo_location = $erlang::remote_repo_location,
|
||||||
|
$repos = $erlang::repos,
|
||||||
|
) {
|
||||||
|
|
||||||
|
Class['erlang::repo::apt'] -> Package<| title == $package_name |>
|
||||||
|
|
||||||
|
apt::source { 'erlang':
|
||||||
|
include_src => false,
|
||||||
|
key => $key_signature,
|
||||||
|
key_source => $remote_repo_key_location,
|
||||||
|
location => $remote_repo_location,
|
||||||
|
repos => $repos,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
30
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/manifests/repo/yum.pp
vendored
Normal file
30
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/manifests/repo/yum.pp
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# == Class: erlang::repo::yum
|
||||||
|
#
|
||||||
|
# Install a yum package repository containing Erlang.
|
||||||
|
# All parameters have sane default values in erlang::params.
|
||||||
|
#
|
||||||
|
# === Parameters
|
||||||
|
# [*local_repo_location*]
|
||||||
|
# File system location to store the repository details
|
||||||
|
#
|
||||||
|
# [*package_name*]
|
||||||
|
# Name of the Erlang package in the specified repository
|
||||||
|
#
|
||||||
|
# [*remote_repo_location*]
|
||||||
|
# URL of the remote repository
|
||||||
|
#
|
||||||
|
class erlang::repo::yum (
|
||||||
|
$local_repo_location = $erlang::local_repo_location,
|
||||||
|
$package_name = $erlang::package_name,
|
||||||
|
$remote_repo_location = $erlang::remote_repo_location,
|
||||||
|
) inherits erlang {
|
||||||
|
|
||||||
|
Class['erlang::repo::yum'] -> Package<| title == $package_name |>
|
||||||
|
|
||||||
|
exec { 'erlang-repo-download':
|
||||||
|
command => "curl -o ${local_repo_location} ${remote_repo_location}",
|
||||||
|
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
|
||||||
|
creates => $local_repo_location,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
138
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/spec/classes/erlang_spec.rb
vendored
Normal file
138
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/spec/classes/erlang_spec.rb
vendored
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'erlang', :type => :class do
|
||||||
|
|
||||||
|
|
||||||
|
context 'on Debian' do
|
||||||
|
let(:facts) { {
|
||||||
|
:osfamily => 'Debian',
|
||||||
|
:lsbdistid => 'debian',
|
||||||
|
:lsbdistcodename => 'squeeze'
|
||||||
|
}}
|
||||||
|
|
||||||
|
context 'with no parameters' do
|
||||||
|
it { should compile.with_all_deps }
|
||||||
|
it { should contain_package('erlang-nox').with_ensure('present') }
|
||||||
|
it { should contain_apt__source('erlang').with(
|
||||||
|
'key_source' => 'http://packages.erlang-solutions.com/debian/erlang_solutions.asc',
|
||||||
|
'key' => 'D208507CA14F4FCA'
|
||||||
|
) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a custom version' do
|
||||||
|
let(:params) { {'version' => 'absent' } }
|
||||||
|
it { should contain_package('erlang-nox').with_ensure('absent') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a custom package name' do
|
||||||
|
let(:params) { {'package_name' => 'not-erlang' } }
|
||||||
|
it { should contain_package('not-erlang').with_ensure('present') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with custom repository details' do
|
||||||
|
let(:params) { {
|
||||||
|
'key_signature' => '1234ABCD',
|
||||||
|
'repos' => 'main',
|
||||||
|
'remote_repo_location' => 'http://example.com/debian',
|
||||||
|
'remote_repo_key_location' => 'http://example.com/debian/key.asc',
|
||||||
|
} }
|
||||||
|
it { should contain_apt__source('erlang').with(
|
||||||
|
'location' => 'http://example.com/debian',
|
||||||
|
'key_source' => 'http://example.com/debian/key.asc',
|
||||||
|
'key' => '1234ABCD',
|
||||||
|
'repos' => 'main'
|
||||||
|
) }
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on RedHat 5' do
|
||||||
|
let(:facts) { {:osfamily => 'RedHat', :operatingsystemrelease => '5.9' } }
|
||||||
|
|
||||||
|
context "epel enabled" do
|
||||||
|
let(:params) {{ :epel_enable => true }}
|
||||||
|
it { should contain_class('epel') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "epel disabled" do
|
||||||
|
let(:params) {{ :epel_enable => false }}
|
||||||
|
it { should_not contain_class('epel') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with no parameters' do
|
||||||
|
it { should contain_package('erlang').with_ensure('present') }
|
||||||
|
it { should contain_exec('erlang-repo-download').with(
|
||||||
|
'command' => 'curl -o /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo',
|
||||||
|
'path' => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a custom repository' do
|
||||||
|
let(:params) { {
|
||||||
|
'local_repo_location' => '/tmp/yum.repos.d/tmp.repo',
|
||||||
|
'remote_repo_location' => 'http://example.com/fake.repo',
|
||||||
|
} }
|
||||||
|
|
||||||
|
it { should contain_exec('erlang-repo-download').with(
|
||||||
|
'command' => 'curl -o /tmp/yum.repos.d/tmp.repo http://example.com/fake.repo'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a custom version' do
|
||||||
|
let(:params) { {'version' => 'absent' } }
|
||||||
|
it { should contain_package('erlang').with_ensure('absent') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on RedHat 6' do
|
||||||
|
let(:facts) { {:osfamily => 'RedHat', :operatingsystemrelease => '6.4' } }
|
||||||
|
|
||||||
|
context "epel enabled" do
|
||||||
|
let(:params) {{ :epel_enable => true }}
|
||||||
|
it { should contain_class('epel') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "epel disabled" do
|
||||||
|
let(:params) {{ :epel_enable => false }}
|
||||||
|
it { should_not contain_class('epel') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with no parameters' do
|
||||||
|
it { should contain_package('erlang').with_ensure('present') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a custom version' do
|
||||||
|
let(:params) { {'version' => 'absent' } }
|
||||||
|
it { should contain_package('erlang').with_ensure('absent') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on SUSE' do
|
||||||
|
let(:facts) {{ :osfamily => 'SUSE', }}
|
||||||
|
|
||||||
|
context 'with no parameters' do
|
||||||
|
it { should contain_package('erlang').with_ensure('present') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a custom version' do
|
||||||
|
let(:params) { {'version' => 'absent' } }
|
||||||
|
it { should contain_package('erlang').with_ensure('absent') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on Archlinux' do
|
||||||
|
let(:facts) {{ :osfamily => 'Archlinux', }}
|
||||||
|
|
||||||
|
context 'with no parameters' do
|
||||||
|
it { should contain_package('erlang').with_ensure('present') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a custom version' do
|
||||||
|
let(:params) { {'version' => 'absent' } }
|
||||||
|
it { should contain_package('erlang').with_ensure('absent') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
1
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/spec/spec_helper.rb
vendored
Normal file
1
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/spec/spec_helper.rb
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||||
17
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/spec/spec_helper_system.rb
vendored
Normal file
17
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/spec/spec_helper_system.rb
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
require 'rspec-system/spec_helper'
|
||||||
|
require 'rspec-system-puppet/helpers'
|
||||||
|
|
||||||
|
include RSpecSystemPuppet::Helpers
|
||||||
|
|
||||||
|
RSpec.configure do |c|
|
||||||
|
proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
||||||
|
c.tty = true
|
||||||
|
c.include RSpecSystemPuppet::Helpers
|
||||||
|
|
||||||
|
c.before :suite do
|
||||||
|
puppet_install
|
||||||
|
puppet_module_install(:source => proj_root, :module_name => 'erlang')
|
||||||
|
shell('puppet module install puppetlabs-apt')
|
||||||
|
shell('puppet module install stahnma-epel')
|
||||||
|
end
|
||||||
|
end
|
||||||
25
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/spec/system/erlang_spec.rb
vendored
Normal file
25
dev/vagrant/dolibarrdev/puphpet/puppet/modules/erlang/spec/system/erlang_spec.rb
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
require 'spec_helper_system'
|
||||||
|
|
||||||
|
describe 'The erlang puppet module' do
|
||||||
|
it 'should run without errors' do
|
||||||
|
pp = <<-EOS
|
||||||
|
class { 'erlang':
|
||||||
|
epel_enable => true
|
||||||
|
}
|
||||||
|
EOS
|
||||||
|
|
||||||
|
puppet_apply(pp) do |r|
|
||||||
|
r.exit_code.should == 2
|
||||||
|
r.refresh
|
||||||
|
r.exit_code.should be_zero
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should install the erl binary into /usr/bin' do
|
||||||
|
shell 'which erl' do |r|
|
||||||
|
r.stdout.should =~ /\/usr\/bin\/erl/
|
||||||
|
r.stderr.should be_empty
|
||||||
|
r.exit_code.should be_zero
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
#
|
||||||
|
# hash_key_true.rb
|
||||||
|
#
|
||||||
|
|
||||||
|
module Puppet::Parser::Functions
|
||||||
|
|
||||||
|
newfunction(:hash_key_true, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args|
|
||||||
|
|
||||||
|
Returns true if the key within hash is truthy
|
||||||
|
ENDHEREDOC
|
||||||
|
|
||||||
|
unless args.length == 2
|
||||||
|
raise Puppet::ParseError, ("hash_key_true(): wrong number of arguments (#{args.length}; must be 2)")
|
||||||
|
end
|
||||||
|
|
||||||
|
arr = args[0]
|
||||||
|
key = args[1]
|
||||||
|
|
||||||
|
unless arr.is_a?(Hash)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
unless arr.has_key?(key)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if arr[key].nil?
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if arr[key] == false
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if arr[key] == 'false'
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if arr[key].empty?
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
45
dev/vagrant/dolibarrdev/puphpet/puppet/modules/puphpet/lib/puppet/parser/functions/value_true.rb
vendored
Normal file
45
dev/vagrant/dolibarrdev/puphpet/puppet/modules/puphpet/lib/puppet/parser/functions/value_true.rb
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#
|
||||||
|
# value_true.rb
|
||||||
|
#
|
||||||
|
|
||||||
|
module Puppet::Parser::Functions
|
||||||
|
|
||||||
|
newfunction(:value_true, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args|
|
||||||
|
|
||||||
|
Returns true if value is truthy
|
||||||
|
ENDHEREDOC
|
||||||
|
|
||||||
|
unless args.length == 1
|
||||||
|
raise Puppet::ParseError, ("value_true(): wrong number of arguments (#{args.length}; must be 1)")
|
||||||
|
end
|
||||||
|
|
||||||
|
value = args[0]
|
||||||
|
|
||||||
|
if value.nil?
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if value == false
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if value == 0
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if value == '0'
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if value == 'false'
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if value.empty?
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -44,7 +44,11 @@ class puphpet::hhvm(
|
|||||||
'deb http://security.debian.org/ wheezy/updates main',
|
'deb http://security.debian.org/ wheezy/updates main',
|
||||||
'deb-src http://security.debian.org/ wheezy/updates main',
|
'deb-src http://security.debian.org/ wheezy/updates main',
|
||||||
'deb http://http.us.debian.org/debian wheezy-updates main',
|
'deb http://http.us.debian.org/debian wheezy-updates main',
|
||||||
'deb-src http://http.us.debian.org/debian wheezy-updates main'
|
'deb-src http://http.us.debian.org/debian wheezy-updates main',
|
||||||
|
'deb http://http.debian.net/debian wheezy main',
|
||||||
|
'deb-src http://http.debian.net/debian wheezy main',
|
||||||
|
'deb http://http.debian.net/debian wheezy-updates main',
|
||||||
|
'deb-src http://http.debian.net/debian wheezy-updates main',
|
||||||
]
|
]
|
||||||
|
|
||||||
each( $deb_srcs ) |$value| {
|
each( $deb_srcs ) |$value| {
|
||||||
@ -69,17 +73,39 @@ class puphpet::hhvm(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
'centos': {
|
'centos': {
|
||||||
|
$jemalloc_url = 'http://files.puphpet.com/centos6/jemalloc-3.6.0-1.el6.x86_64.rpm'
|
||||||
|
$jemalloc_download_location = '/.puphpet-stuff/jemalloc-3.6.0-1.el6.x86_64.rpm'
|
||||||
|
|
||||||
|
$require = defined(Class['my_fw::post']) ? {
|
||||||
|
true => Class['my_fw::post'],
|
||||||
|
default => [],
|
||||||
|
}
|
||||||
|
|
||||||
|
exec { "download jemalloc to ${download_location}":
|
||||||
|
creates => $download_location,
|
||||||
|
command => "wget --quiet --tries=5 --connect-timeout=10 -O '${jemalloc_download_location}' '${jemalloc_url}'",
|
||||||
|
timeout => 30,
|
||||||
|
path => '/usr/bin',
|
||||||
|
require => $require
|
||||||
|
}
|
||||||
|
|
||||||
|
package { 'jemalloc':
|
||||||
|
ensure => latest,
|
||||||
|
provider => yum,
|
||||||
|
source => $download_location,
|
||||||
|
require => Exec["download jemalloc to ${download_location}"],
|
||||||
|
}
|
||||||
|
|
||||||
yum::managed_yumrepo { 'hop5':
|
yum::managed_yumrepo { 'hop5':
|
||||||
descr => 'hop5 repository',
|
descr => 'hop5 repository',
|
||||||
baseurl => 'http://www.hop5.in/yum/el6/',
|
baseurl => 'http://www.hop5.in/yum/el6/',
|
||||||
gpgkey => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-HOP5',
|
gpgkey => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-HOP5',
|
||||||
enabled => 1,
|
enabled => 1,
|
||||||
gpgcheck => 0,
|
gpgcheck => 0,
|
||||||
priority => 1
|
priority => 1,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if $real_webserver == 'apache2' {
|
if $real_webserver == 'apache2' {
|
||||||
if ! defined(Class['apache::mod::mime']) {
|
if ! defined(Class['apache::mod::mime']) {
|
||||||
class { 'apache::mod::mime': }
|
class { 'apache::mod::mime': }
|
||||||
|
|||||||
@ -53,9 +53,14 @@ class puphpet::params {
|
|||||||
'Redhat' => 'php-cgi'
|
'Redhat' => 'php-cgi'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$nginx_default_conf_location = $::osfamily ? {
|
||||||
|
'Debian' => '/etc/nginx/conf.d/default.conf',
|
||||||
|
'Redhat' => '/etc/nginx/conf.d/default.conf'
|
||||||
|
}
|
||||||
|
|
||||||
$nginx_webroot_location = $::osfamily ? {
|
$nginx_webroot_location = $::osfamily ? {
|
||||||
'Debian' => '/var/www/html',
|
'Debian' => '/var/www/html',
|
||||||
'Redhat' => '/usr/share/nginx/html'
|
'Redhat' => '/var/www/html'
|
||||||
}
|
}
|
||||||
|
|
||||||
$mariadb_package_client_name = $::osfamily ? {
|
$mariadb_package_client_name = $::osfamily ? {
|
||||||
|
|||||||
@ -3,7 +3,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
define puphpet::php::pear (
|
define puphpet::php::pear (
|
||||||
$service_autorestart
|
$service_name = '',
|
||||||
|
$service_autorestart,
|
||||||
){
|
){
|
||||||
|
|
||||||
$package = {
|
$package = {
|
||||||
@ -15,7 +16,9 @@ define puphpet::php::pear (
|
|||||||
'pear_command_packaging' => 'alpha',
|
'pear_command_packaging' => 'alpha',
|
||||||
'pear_frontend_gtk2' => false,
|
'pear_frontend_gtk2' => false,
|
||||||
'php_beautifier' => 'beta',
|
'php_beautifier' => 'beta',
|
||||||
|
'php_parser' => 'alpha',
|
||||||
'php_parser_docblockparser' => 'alpha',
|
'php_parser_docblockparser' => 'alpha',
|
||||||
|
'soap' => 'beta',
|
||||||
'testing_selenium' => 'beta',
|
'testing_selenium' => 'beta',
|
||||||
'versioncontrol_git' => 'alpha',
|
'versioncontrol_git' => 'alpha',
|
||||||
'versioncontrol_svn' => 'alpha',
|
'versioncontrol_svn' => 'alpha',
|
||||||
@ -38,7 +41,8 @@ define puphpet::php::pear (
|
|||||||
::php::pear::module { $name:
|
::php::pear::module { $name:
|
||||||
use_package => false,
|
use_package => false,
|
||||||
preferred_state => $preferred_state,
|
preferred_state => $preferred_state,
|
||||||
service_autorestart => $php_webserver_restart,
|
service => $service_name,
|
||||||
|
service_autorestart => $service_autorestart,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,10 @@ define puphpet::php::pecl (
|
|||||||
|
|
||||||
$pecl = $::osfamily ? {
|
$pecl = $::osfamily ? {
|
||||||
'Debian' => {
|
'Debian' => {
|
||||||
#
|
'mongo' => $::lsbdistcodename ? {
|
||||||
|
'precise' => 'mongo',
|
||||||
|
default => false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
'Redhat' => {
|
'Redhat' => {
|
||||||
#
|
#
|
||||||
@ -63,24 +66,34 @@ define puphpet::php::pecl (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$auto_answer_hash = {
|
||||||
|
'mongo' => 'no\n'
|
||||||
|
}
|
||||||
|
|
||||||
$downcase_name = downcase($name)
|
$downcase_name = downcase($name)
|
||||||
|
|
||||||
if has_key($ignore, $downcase_name) {
|
if has_key($auto_answer_hash, $downcase_name) {
|
||||||
|
$auto_answer = $auto_answer_hash[$downcase_name]
|
||||||
|
} else {
|
||||||
|
$auto_answer = '\\n'
|
||||||
|
}
|
||||||
|
|
||||||
|
if has_key($ignore, $downcase_name) and $ignore[$downcase_name] {
|
||||||
$pecl_name = $pecl[$downcase_name]
|
$pecl_name = $pecl[$downcase_name]
|
||||||
$package_name = false
|
$package_name = false
|
||||||
$preferred_state = 'stable'
|
$preferred_state = 'stable'
|
||||||
}
|
}
|
||||||
elsif has_key($pecl, $downcase_name) {
|
elsif has_key($pecl, $downcase_name) and $pecl[$downcase_name] {
|
||||||
$pecl_name = false
|
$pecl_name = $pecl[$downcase_name]
|
||||||
$package_name = false
|
$package_name = false
|
||||||
$preferred_state = false
|
$preferred_state = 'stable'
|
||||||
}
|
}
|
||||||
elsif has_key($pecl_beta, $downcase_name) and $pecl_beta[$downcase_name] {
|
elsif has_key($pecl_beta, $downcase_name) and $pecl_beta[$downcase_name] {
|
||||||
$pecl_name = $pecl_beta[$downcase_name]
|
$pecl_name = $pecl_beta[$downcase_name]
|
||||||
$package_name = false
|
$package_name = false
|
||||||
$preferred_state = 'beta'
|
$preferred_state = 'beta'
|
||||||
}
|
}
|
||||||
elsif has_key($package, $downcase_name) {
|
elsif has_key($package, $downcase_name) and $package[$downcase_name] {
|
||||||
$pecl_name = false
|
$pecl_name = false
|
||||||
$package_name = $package[$downcase_name]
|
$package_name = $package[$downcase_name]
|
||||||
}
|
}
|
||||||
@ -93,6 +106,7 @@ define puphpet::php::pecl (
|
|||||||
::php::pecl::module { $pecl_name:
|
::php::pecl::module { $pecl_name:
|
||||||
use_package => false,
|
use_package => false,
|
||||||
preferred_state => $preferred_state,
|
preferred_state => $preferred_state,
|
||||||
|
auto_answer => $auto_answer,
|
||||||
service_autorestart => $service_autorestart,
|
service_autorestart => $service_autorestart,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
22
dev/vagrant/dolibarrdev/puphpet/puppet/modules/puphpet/manifests/python/pip.pp
vendored
Normal file
22
dev/vagrant/dolibarrdev/puphpet/puppet/modules/puphpet/manifests/python/pip.pp
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
class puphpet::python::pip {
|
||||||
|
|
||||||
|
Exec { path => [ '/usr/bin/', '/usr/local/bin', '/bin', '/usr/local/sbin', '/usr/sbin', '/sbin' ] }
|
||||||
|
|
||||||
|
if ! defined(Package['python-setuptools']) {
|
||||||
|
package { 'python-setuptools': }
|
||||||
|
}
|
||||||
|
|
||||||
|
exec { 'easy_install pip':
|
||||||
|
unless => 'which pip',
|
||||||
|
require => Package['python-setuptools'],
|
||||||
|
}
|
||||||
|
|
||||||
|
if $::osfamily == 'RedHat' {
|
||||||
|
exec { 'rhel pip_provider_name_fix':
|
||||||
|
command => 'alternatives --install /usr/bin/pip-python pip-python /usr/bin/pip 1',
|
||||||
|
subscribe => Exec['easy_install pip'],
|
||||||
|
unless => 'which pip-python',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
18
dev/vagrant/dolibarrdev/puphpet/puppet/modules/puphpet/manifests/supervisord.pp
vendored
Normal file
18
dev/vagrant/dolibarrdev/puphpet/puppet/modules/puphpet/manifests/supervisord.pp
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# This depends on
|
||||||
|
# ajcrowe/supervisord: https://github.com/ajcrowe/puppet-supervisord
|
||||||
|
|
||||||
|
class puphpet::supervisord {
|
||||||
|
|
||||||
|
if ! defined(Class['::supervisord']) {
|
||||||
|
class{ 'puphpet::python::pip': }
|
||||||
|
|
||||||
|
class { '::supervisord':
|
||||||
|
install_pip => false,
|
||||||
|
require => [
|
||||||
|
Class['::my_fw::post'],
|
||||||
|
Class['puphpet::python::pip'],
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user