diff --git a/README.md b/README.md
index ec9deb9..7d6894a 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ The main LibreERP Apps include an Open Source CRM, Website Builder, eCommerce, P
LibreERP Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
-**Shipped version:** 12.0~ynh6
+**Shipped version:** 15.0~ynh1
**Demo:** https://www.odoo.com/trial
## Disclaimers / important information
diff --git a/README_fr.md b/README_fr.md
index 4fd3338..8cdb225 100644
--- a/README_fr.md
+++ b/README_fr.md
@@ -22,7 +22,7 @@ The main LibreERP Apps include an Open Source CRM, Website Builder, eCommerce, P
LibreERP Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
-**Version incluse :** 12.0~ynh6
+**Version incluse :** 15.0~ynh1
**Démo :** https://www.odoo.com/trial
## Avertissements / informations importantes
diff --git a/check_process b/check_process
index c66d406..9ecb67c 100644
--- a/check_process
+++ b/check_process
@@ -1,12 +1,37 @@
-;; Test complet sans multisite
+;; Test complet sans multisite v14
auto_remove=1
; Manifest
domain="domain.tld"
- version="14"
- oca=0
- admin_password="testpassw0rD"
+ version="14"
+ oca=0
lang="en_US"
- tz="Etc/GMT"
+ tz="Etc/GMT"
+ admin="john"
+ password="1Strong-Password"
+ ; Checks
+ pkg_linter=1
+ setup_sub_dir=0
+ setup_root=1
+ setup_nourl=0
+ setup_private=0
+ setup_public=1
+ upgrade=1
+ # 12.0~ynh6
+ upgrade=1 from_commit=54f28204591c902ebe4a3a6b662e88e8fa598fde
+ backup_restore=1
+ multi_instance=1
+ port_already_use=0
+ change_url=0
+;; Test complet sans multisite v15
+ auto_remove=1
+ ; Manifest
+ domain="domain.tld"
+ version="15"
+ oca=0
+ lang="en_US"
+ tz="Etc/GMT"
+ admin="john"
+ password="1Strong-Password"
; Checks
pkg_linter=1
setup_sub_dir=0
@@ -15,8 +40,6 @@
setup_private=0
setup_public=1
upgrade=1
- # 12.0-6
- # upgrade=1 from_commit=2cfdbc229faa8700873e681a01f823c32475cca8
backup_restore=1
multi_instance=1
port_already_use=0
diff --git a/conf/10.src b/conf/10.src
index 295d69e..512c90b 100644
--- a/conf/10.src
+++ b/conf/10.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://github.com/odoo/odoo/archive/f69c004795e0a7f32d5c6243cc3d4915cf010bbe.tar.gz
-SOURCE_SUM=79bfb272bc48509390386de357413e34bbb10fceee0662ca89e9e18383ed522f
+SOURCE_URL=https://github.com/odoo/odoo/archive/28c3f51c4878fbcd79b2e819948465fcf2160ebc.tar.gz
+SOURCE_SUM=880be8b9e5a57e67d6645a527efd83224319d8fc645cbd72f24e7e50a75ff31d
SOURCE_FILENAME=odoo-10.tar.gz
SOURCE_FORMAT=tar.gz
SOURCE_SUM_PRG=sha256sum
diff --git a/conf/11.src b/conf/11.src
index 1414a9d..1653db3 100644
--- a/conf/11.src
+++ b/conf/11.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://github.com/odoo/odoo/archive/d129b0220eb0c76c8677c6ee0f60306f57cf2c8f.tar.gz
-SOURCE_SUM=2e209236c56b78bb410639f3f0c102479c37fdb293cb51d3f6fdd6ad20fa610f
+SOURCE_URL=https://github.com/odoo/odoo/archive/43200e9dcc1d91cfd5c1e5e939b27e713d20cc7c.tar.gz
+SOURCE_SUM=71418fc5536242de72baa2d17b38a439252956fbbb1ebc3e2294c858674c4659
SOURCE_FILENAME=odoo-11.tar.gz
SOURCE_FORMAT=tar.gz
SOURCE_SUM_PRG=sha256sum
diff --git a/conf/12.src b/conf/12.src
index 295c3d4..59e2fc0 100644
--- a/conf/12.src
+++ b/conf/12.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://github.com/odoo/odoo/archive/336c9aab3619abb5bfbeb07f87ae014facdefb0b.tar.gz
-SOURCE_SUM=3d37bc31383bfad827c3fdbab4daa3914ad036fd70fe1f20925ed18d2b9e1f87
+SOURCE_URL=https://github.com/odoo/odoo/archive/04e37773d1bf9b885be674d85bdf0ec069926958.tar.gz
+SOURCE_SUM=023afbaada2182cd6e54c0717915f7585e6899e2c23ad54d9f2372e88bcf35ec
SOURCE_FILENAME=odoo-12.tar.gz
SOURCE_FORMAT=tar.gz
SOURCE_SUM_PRG=sha256sum
diff --git a/conf/14.src b/conf/14.src
index 8da0284..0524257 100644
--- a/conf/14.src
+++ b/conf/14.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://github.com/odoo/odoo/archive/d8322e64c6d999ffc72093b2ef2db91532138c89.tar.gz
-SOURCE_SUM=40cbbc93ab594f614499ccdd04922590c420bfadeaf2f889853a5d58073e5fef
+SOURCE_URL=https://github.com/odoo/odoo/archive/5a8690b35a2fa9c5ed81d858ac0d170beaabaaf9.tar.gz
+SOURCE_SUM=b52829b5f01f39d8e9bd6977eb1b9c23053e92c7574ec26e5b3d218522fccf3a
SOURCE_FILENAME=odoo-14.tar.gz
SOURCE_FORMAT=tar.gz
SOURCE_SUM_PRG=sha256sum
diff --git a/conf/15.src b/conf/15.src
new file mode 100644
index 0000000..bbc2922
--- /dev/null
+++ b/conf/15.src
@@ -0,0 +1,5 @@
+SOURCE_URL=https://github.com/odoo/odoo/archive/2354fade236b2853835761a129ef2c4ea450d728.tar.gz
+SOURCE_SUM=566c7df9d4967fdca65060f78dc0202febc72ef2691ef72ae256892fc838ea48
+SOURCE_FILENAME=odoo-15.tar.gz
+SOURCE_FORMAT=tar.gz
+SOURCE_SUM_PRG=sha256sum
diff --git a/conf/9.src b/conf/9.src
index d8d3ddc..5983b00 100644
--- a/conf/9.src
+++ b/conf/9.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://github.com/odoo/odoo/archive/a25432cd357124242cc6e8ead19b09d58ba530ae.tar.gz
-SOURCE_SUM=2e85eaaeb2609223ddda38877715aca5afb7fb8f794bef85e147e7e18e285e05
+SOURCE_URL=https://github.com/odoo/odoo/archive/7132a15c38a3b5e5ec232404d21aacfa2ac5874e.tar.gz
+SOURCE_SUM=f4c522da29201835435b01c651032d07c2d0c0e8a14b30f9a784cb531c5ba250
SOURCE_FILENAME=odoo-9.tar.gz
SOURCE_FORMAT=tar.gz
SOURCE_SUM_PRG=sha256sum
diff --git a/conf/nginx.conf b/conf/nginx.conf
index 7a361c9..6ffff73 100644
--- a/conf/nginx.conf
+++ b/conf/nginx.conf
@@ -1,51 +1,51 @@
location / {
- if ($scheme = http) {
- rewrite ^ https://$server_name$request_uri? permanent;
- }
- try_files $uri @__APP__;
+ try_files $uri @__APP__;
}
-location @__APP__ {
- proxy_pass http://127.0.0.1:__PORT__;
-
- client_max_body_size 50M;
- client_body_timeout 60m;
- fastcgi_read_timeout 60m;
- proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
- proxy_buffers 16 64k;
- proxy_buffer_size 128k;
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Host $host;
- proxy_read_timeout 720s;
- proxy_connect_timeout 720s;
- proxy_send_timeout 720s;
+location @__APP__ {
+ proxy_pass http://127.0.0.1:__PORT__;
+
+ client_max_body_size 50M;
+ client_body_timeout 60m;
+ fastcgi_read_timeout 60m;
+
+ proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
+ proxy_buffers 16 64k;
+ proxy_buffer_size 128k;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Host $host;
+ proxy_read_timeout 720s;
+ proxy_connect_timeout 720s;
+ proxy_send_timeout 720s;
}
+
location /longpolling {
- proxy_pass http://127.0.0.1:__PORT_CHAT__;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Host $host;
- proxy_read_timeout 720s;
- proxy_connect_timeout 720s;
- proxy_send_timeout 720s;
+ proxy_pass http://127.0.0.1:__PORT_CHAT__;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Host $host;
+ proxy_read_timeout 720s;
+ proxy_connect_timeout 720s;
+ proxy_send_timeout 720s;
}
+
location ~* /web/static/ {
- proxy_cache_valid 200 90m;
- proxy_buffering on;
- expires 864000;
- proxy_pass http://127.0.0.1:__PORT__;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Host $host;
- proxy_read_timeout 720s;
- proxy_connect_timeout 720s;
- proxy_send_timeout 720s;
+ proxy_cache_valid 200 90m;
+ proxy_buffering on;
+ expires 864000;
+ proxy_pass http://127.0.0.1:__PORT__;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Host $host;
+ proxy_read_timeout 720s;
+ proxy_connect_timeout 720s;
+ proxy_send_timeout 720s;
}
diff --git a/conf/oca-12.src b/conf/oca-12.src
index 5e7f51d..22a053a 100644
--- a/conf/oca-12.src
+++ b/conf/oca-12.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://github.com/OCA/OCB/archive/4df6b0b164c6f384fdb7df40e51e80780572273a.tar.gz
-SOURCE_SUM=e064dcd121ca207cbfa18c5f5f63c394ee6a1ca03f9ebbd6b88e6a62dda6bca0
+SOURCE_URL=https://github.com/OCA/OCB/archive/f38c99acbea6e1ab42deddb468b9710cabccfbdf.tar.gz
+SOURCE_SUM=55cb5e87022a87cf13c9d74bf094da2c098cf64fb8fdacbf42fadeea2479daa0
SOURCE_FILENAME=odoo-12.tar.gz
SOURCE_FORMAT=tar.gz
SOURCE_SUM_PRG=sha256sum
diff --git a/conf/oca-14.src b/conf/oca-14.src
index 4f5e8f4..5c55562 100644
--- a/conf/oca-14.src
+++ b/conf/oca-14.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://github.com/OCA/OCB/archive/b7dc86b530718c090ba26b8eea0154d1c50c05f2.tar.gz
-SOURCE_SUM=d2ca8bbe913e90f1623c6f2375d4cd2c40d4ed4abb650e66f7691669cbab90fa
+SOURCE_URL=https://github.com/OCA/OCB/archive/e1e9e7420a5b5b32d5359ffed19e718080764ddd.tar.gz
+SOURCE_SUM=acfbf7a2428a51962d1d1a084c5a959a392c522b8aad7b98d7abac75c84259d9
SOURCE_FILENAME=odoo-14.tar.gz
SOURCE_FORMAT=tar.gz
SOURCE_SUM_PRG=sha256sum
diff --git a/conf/oca-15.src b/conf/oca-15.src
new file mode 100644
index 0000000..8a4c90f
--- /dev/null
+++ b/conf/oca-15.src
@@ -0,0 +1,5 @@
+SOURCE_URL=https://github.com/OCA/OCB/archive/2354fade236b2853835761a129ef2c4ea450d728.tar.gz
+SOURCE_SUM=8bab7886de520295a2db4ab0895b0a3b556a2cd7d77e903347f99762310b636f
+SOURCE_FILENAME=odoo-15.tar.gz
+SOURCE_FORMAT=tar.gz
+SOURCE_SUM_PRG=sha256sum
diff --git a/manifest.json b/manifest.json
index 38d53c0..61847cd 100644
--- a/manifest.json
+++ b/manifest.json
@@ -6,7 +6,7 @@
"en": "Suite of business apps (ERP: CRM, Accounting, Point of Sale, HR, Purchases...).",
"fr": "Une collection d'apps de gestion d'entreprise (ERP : CRM, Comptabilité, Point de Vente, RH, Achats, ...)."
},
- "version": "12.0~ynh6",
+ "version": "15.0~ynh1",
"url": "https://odoo.com",
"upstream": {
"license": "LGPL-3.0-only",
@@ -37,10 +37,6 @@
"name": "domain",
"type": "domain"
},
- {
- "name": "admin",
- "type": "user"
- },
{
"name": "version",
"type": "string",
@@ -48,8 +44,8 @@
"en": "Choose the version you want",
"fr": "Choisissez la version désirée"
},
- "choices": ["11", "12", "14"],
- "default": "14"
+ "choices": ["11", "12", "14", "15"],
+ "default": "15"
},
{
"name": "oca",
@@ -60,14 +56,6 @@
"fr": "Désirez vous installer OCA à la place des sources de LibreERP (pas encore implémenté)"
}
},
- {
- "name": "admin_password",
- "type": "password",
- "ask": {
- "en": "Choose a strong master admin password",
- "fr": "Choisissez un mot de passe maître fort pour l'administration"
- }
- },
{
"name": "lang",
"type": "string",
@@ -86,6 +74,18 @@
"fr": "Choisissez un fuseau horaire"
},
"default": "Etc/UTC"
+ },
+ {
+ "name": "admin",
+ "type": "user"
+ },
+ {
+ "name": "admin_password",
+ "type": "password",
+ "ask": {
+ "en": "Choose a strong master admin password",
+ "fr": "Choisissez un mot de passe maître fort pour l'administration"
+ }
}
]
}
diff --git a/scripts/_common.sh b/scripts/_common.sh
index 3497fe9..50162bf 100644
--- a/scripts/_common.sh
+++ b/scripts/_common.sh
@@ -17,76 +17,78 @@ pkg_dependencies="curl postgresql xfonts-75dpi xfonts-base wkhtmltopdf node-less
#=================================================
function debranding() {
- # Remove Odoo references to avoid trademark issue
- if [ -d $final_path/$appname/$FORKNAME ]; then
- python_app=$final_path/$appname/$FORKNAME
- else
- python_app=$final_path/$appname/openerp
- fi
- find $final_path/$appname -type f \( -iname '*.xml' -o -iname '*.po' \) -exec sed -i 's/Powered by ]*>Odoo<\/a>//g' {} \;
- find $final_path/$appname -type f \( -iname '*.xml' -o -iname '*.po' \) -exec sed -i 's/]*>Powered by <[^>]*>Odoo<\/[^>]*><\/a>//g' {} \;
- find $final_path/$appname -type f \( -iname '*.xml' -o -iname '*.po' \) -exec sed -i 's/Powered by <[^>]*>Odoo<\/[^>]*>//g' {} \;
- find $final_path/$appname -type f \( -iname '*.xml' -o -iname '*.po' \) -exec sed -i 's/Powered by <[^>]*>]*Odoo[^>]*><\/a>//g' {} \;
- sed -i 's/]*>My Odoo.com account<\/a>//g' $final_path/$appname/addons/web/static/src/xml/base.xml
- sed -i 's/]*>Documentation<\/a>//g' $final_path/$appname/addons/web/static/src/xml/base.xml
- sed -i 's/]*>Support<\/a>//g' $final_path/$appname/addons/web/static/src/xml/base.xml
- cp ../conf/logo_type.png $python_app/addons/base/static/img/logo_white.png
- cp ../conf/favicon.ico $final_path/$appname/addons/web/static/src/img/favicon.ico
+ # Remove Odoo references to avoid trademark issue
+ if [ -d $final_path/$appname/$FORKNAME ]; then
+ python_app=$final_path/$appname/$FORKNAME
+ else
+ python_app=$final_path/$appname/openerp
+ fi
+ find $final_path/$appname -type f \( -iname '*.xml' -o -iname '*.po' \) -exec sed -i 's/Powered by ]*>Odoo<\/a>//g' {} \;
+ find $final_path/$appname -type f \( -iname '*.xml' -o -iname '*.po' \) -exec sed -i 's/]*>Powered by <[^>]*>Odoo<\/[^>]*><\/a>//g' {} \;
+ find $final_path/$appname -type f \( -iname '*.xml' -o -iname '*.po' \) -exec sed -i 's/Powered by <[^>]*>Odoo<\/[^>]*>//g' {} \;
+ find $final_path/$appname -type f \( -iname '*.xml' -o -iname '*.po' \) -exec sed -i 's/Powered by <[^>]*>]*Odoo[^>]*><\/a>//g' {} \;
+ if test -f "$final_path/$appname/addons/web/static/src/xml/base.xml"; then
+ sed -i 's/]*>My Odoo.com account<\/a>//g' $final_path/$appname/addons/web/static/src/xml/base.xml
+ sed -i 's/]*>Documentation<\/a>//g' $final_path/$appname/addons/web/static/src/xml/base.xml
+ sed -i 's/]*>Support<\/a>//g' $final_path/$appname/addons/web/static/src/xml/base.xml
+ fi
+ cp ../conf/logo_type.png $python_app/addons/base/static/img/logo_white.png
+ cp ../conf/favicon.ico $final_path/$appname/addons/web/static/src/img/favicon.ico
}
function setup_files() {
- if [[ $oca -eq 0 ]]; then
- ynh_setup_source $final_path/$appname $app_version
- else
- ynh_setup_source $final_path/$appname "oca-$app_version"
- fi
- debranding
- mkdir -p $final_path/custom-addons
- chmod 750 "$final_path"
- chmod -R o-rwx "$final_path"
- chown -R $app:$app "$final_path"
- touch /var/log/$app.log
- chown $app:$app /var/log/$app.log
-
- if [ ! -f $conf_file ]; then
- ynh_configure server.conf $conf_file
- chmod 400 "$conf_file"
+ if [[ $oca -eq 0 ]]; then
+ ynh_setup_source $final_path/$appname $app_version
+ else
+ ynh_setup_source $final_path/$appname "oca-$app_version"
+ fi
+ debranding
+ mkdir -p $final_path/custom-addons
+ chmod 750 "$final_path"
+ chmod -R o-rwx "$final_path"
+ chown -R $app:$app "$final_path"
+ touch /var/log/$app.log
+ chown $app:$app /var/log/$app.log
+
+ if [ ! -f $conf_file ]; then
+ ynh_configure server.conf $conf_file
+ chmod 400 "$conf_file"
chown $app:$app "$conf_file"
- # Autoinstall the LDAP auth module
- if ls $final_path/$appname/$FORKNAME-bin > /dev/null ; then
- ynh_replace_string "^{$" "{'auto_install': True," $final_path/$appname/addons/auth_ldap/__manifest__.py
- else
- ynh_replace_string "'auto_install': False" "'auto_install': True" $final_path/$appname/addons/auth_ldap/__openerp__.py
- fi
- fi
+ # Autoinstall the LDAP auth module
+ if ls $final_path/$appname/$FORKNAME-bin > /dev/null ; then
+ ynh_replace_string "^{$" "{'auto_install': True," $final_path/$appname/addons/auth_ldap/__manifest__.py
+ else
+ ynh_replace_string "'auto_install': False" "'auto_install': True" $final_path/$appname/addons/auth_ldap/__openerp__.py
+ fi
+ fi
}
function setup_database() {
- export preinstall=1
- ynh_configure server.conf $conf_file
- chown $app:$app $conf_file
- # Load translation
- #param=" --without-demo True --addons-path $final_path/$appname/addons --db_user $app --db_password $db_pwd --db_host 127.0.0.1 --db_port 5432 --db-filter '^$app\$' -d $app "
- param=" -c $conf_file -d $app "
- ynh_exec_as $app $bin_file -c $conf_file --stop-after-init -i base -d $app
- ynh_exec_as $app $bin_file -c $conf_file --stop-after-init -i auth_ldap -d $app
- ynh_exec_as $app $bin_file -c $conf_file --stop-after-init --load-language $lang -d $app
- # Configure language, timezone and ldap
- ynh_exec_as $app $bin_file shell -c $conf_file -d $app <<< \
+ export preinstall=1
+ ynh_configure server.conf $conf_file
+ chown $app:$app $conf_file
+ # Load translation
+ #param=" --without-demo True --addons-path $final_path/$appname/addons --db_user $app --db_password $db_pwd --db_host 127.0.0.1 --db_port 5432 --db-filter '^$app\$' -d $app "
+ param=" -c $conf_file -d $app "
+ ynh_exec_as $app $bin_file -c $conf_file --stop-after-init -i base -d $app
+ ynh_exec_as $app $bin_file -c $conf_file --stop-after-init -i auth_ldap -d $app
+ ynh_exec_as $app $bin_file -c $conf_file --stop-after-init --load-language $lang -d $app
+ # Configure language, timezone and ldap
+ ynh_exec_as $app $bin_file shell -c $conf_file -d $app <<< \
"
self.env['res.users'].search([['login', '=', 'admin']])[0].write({'password': '$admin_password'})
self.env.cr.commit()
"
- ynh_exec_as $app $bin_file shell -c $conf_file -d $app <<< \
+ ynh_exec_as $app $bin_file shell -c $conf_file -d $app <<< \
"
self.write({'tz':'$tz','lang':'$lang'})
self.env.cr.commit()
"
- ynh_exec_as $app $bin_file shell -c $conf_file -d $app <<< \
+ ynh_exec_as $app $bin_file shell -c $conf_file -d $app <<< \
"
template=env['res.users'].create({
'login':'template',
@@ -108,20 +110,20 @@ self.company_id.ldaps.create({
})
self.env.cr.commit()
"
- export preinstall=0
- ynh_configure server.conf $conf_file
- chown $app:$app $conf_file
+ export preinstall=0
+ ynh_configure server.conf $conf_file
+ chown $app:$app $conf_file
}
ynh_configure () {
- local TEMPLATE=$1
- local DEST=$2
- content=""
- content2=""
- content3=""
- if [[ $preinstall == '1' ]]
- then
- content="dbfilter = $db_name"
+ local TEMPLATE=$1
+ local DEST=$2
+ content=""
+ content2=""
+ content3=""
+ if [[ $preinstall == '1' ]]
+ then
+ content="dbfilter = $db_name"
else
content="db_name = $db_name"
if [[ $app_version > 9 ]]
@@ -131,12 +133,12 @@ ynh_configure () {
content3="list_db = False"
fi
- mkdir -p "$(dirname $DEST)"
- if [ -f '../manifest.json' ] ; then
- ynh_add_config "${YNH_CWD}/../conf/$TEMPLATE" "$DEST"
- else
- ynh_add_config "${YNH_CWD}/../settings/conf/$TEMPLATE" "$DEST"
- fi
+ mkdir -p "$(dirname $DEST)"
+ if [ -f '../manifest.json' ] ; then
+ ynh_add_config "${YNH_CWD}/../conf/$TEMPLATE" "$DEST"
+ else
+ ynh_add_config "${YNH_CWD}/../settings/conf/$TEMPLATE" "$DEST"
+ fi
}
#=================================================
@@ -148,75 +150,75 @@ ynh_configure () {
# usage: ynh_add_swap --size=SWAP in Mb
# | arg: -s, --size= - Amount of SWAP to add in Mb.
ynh_add_swap () {
- # Declare an array to define the options of this helper.
- declare -Ar args_array=( [s]=size= )
- local size
- # Manage arguments with getopts
- ynh_handle_getopts_args "$@"
+ # Declare an array to define the options of this helper.
+ declare -Ar args_array=( [s]=size= )
+ local size
+ # Manage arguments with getopts
+ ynh_handle_getopts_args "$@"
- local swap_max_size=$(( $size * 1024 ))
+ local swap_max_size=$(( $size * 1024 ))
- local free_space=$(df --output=avail / | sed 1d)
- # Because we don't want to fill the disk with a swap file, divide by 2 the available space.
- local usable_space=$(( $free_space / 2 ))
+ local free_space=$(df --output=avail / | sed 1d)
+ # Because we don't want to fill the disk with a swap file, divide by 2 the available space.
+ local usable_space=$(( $free_space / 2 ))
- SD_CARD_CAN_SWAP=${SD_CARD_CAN_SWAP:-0}
+ SD_CARD_CAN_SWAP=${SD_CARD_CAN_SWAP:-0}
- # Swap on SD card only if it's is specified
- if ynh_is_main_device_a_sd_card && [ "$SD_CARD_CAN_SWAP" == "0" ]
- then
- ynh_print_warn --message="The main mountpoint of your system '/' is on an SD card, swap will not be added to prevent some damage of this one, but that can cause troubles for the app $app. If you still want activate the swap, you can relaunch the command preceded by 'SD_CARD_CAN_SWAP=1'"
- return
- fi
+ # Swap on SD card only if it's is specified
+ if ynh_is_main_device_a_sd_card && [ "$SD_CARD_CAN_SWAP" == "0" ]
+ then
+ ynh_print_warn --message="The main mountpoint of your system '/' is on an SD card, swap will not be added to prevent some damage of this one, but that can cause troubles for the app $app. If you still want activate the swap, you can relaunch the command preceded by 'SD_CARD_CAN_SWAP=1'"
+ return
+ fi
- # Compare the available space with the size of the swap.
- # And set a acceptable size from the request
- if [ $usable_space -ge $swap_max_size ]
- then
- local swap_size=$swap_max_size
- elif [ $usable_space -ge $(( $swap_max_size / 2 )) ]
- then
- local swap_size=$(( $swap_max_size / 2 ))
- elif [ $usable_space -ge $(( $swap_max_size / 3 )) ]
- then
- local swap_size=$(( $swap_max_size / 3 ))
- elif [ $usable_space -ge $(( $swap_max_size / 4 )) ]
- then
- local swap_size=$(( $swap_max_size / 4 ))
- else
- echo "Not enough space left for a swap file" >&2
- local swap_size=0
- fi
+ # Compare the available space with the size of the swap.
+ # And set a acceptable size from the request
+ if [ $usable_space -ge $swap_max_size ]
+ then
+ local swap_size=$swap_max_size
+ elif [ $usable_space -ge $(( $swap_max_size / 2 )) ]
+ then
+ local swap_size=$(( $swap_max_size / 2 ))
+ elif [ $usable_space -ge $(( $swap_max_size / 3 )) ]
+ then
+ local swap_size=$(( $swap_max_size / 3 ))
+ elif [ $usable_space -ge $(( $swap_max_size / 4 )) ]
+ then
+ local swap_size=$(( $swap_max_size / 4 ))
+ else
+ echo "Not enough space left for a swap file" >&2
+ local swap_size=0
+ fi
- # If there's enough space for a swap, and no existing swap here
- if [ $swap_size -ne 0 ] && [ ! -e /swap_$app ]
- then
- # Preallocate space for the swap file, fallocate may sometime not be used, use dd instead in this case
- if ! fallocate -l ${swap_size}K /swap_$app
- then
- dd if=/dev/zero of=/swap_$app bs=1024 count=${swap_size}
- fi
- chmod 0600 /swap_$app
- # Create the swap
- mkswap /swap_$app
- # And activate it
- swapon /swap_$app
- # Then add an entry in fstab to load this swap at each boot.
- echo -e "/swap_$app swap swap defaults 0 0 #Swap added by $app" >> /etc/fstab
- fi
+ # If there's enough space for a swap, and no existing swap here
+ if [ $swap_size -ne 0 ] && [ ! -e /swap_$app ]
+ then
+ # Preallocate space for the swap file, fallocate may sometime not be used, use dd instead in this case
+ if ! fallocate -l ${swap_size}K /swap_$app
+ then
+ dd if=/dev/zero of=/swap_$app bs=1024 count=${swap_size}
+ fi
+ chmod 0600 /swap_$app
+ # Create the swap
+ mkswap /swap_$app
+ # And activate it
+ swapon /swap_$app
+ # Then add an entry in fstab to load this swap at each boot.
+ echo -e "/swap_$app swap swap defaults 0 0 #Swap added by $app" >> /etc/fstab
+ fi
}
ynh_del_swap () {
- # If there a swap at this place
- if [ -e /swap_$app ]
- then
- # Clean the fstab
- sed -i "/#Swap added by $app/d" /etc/fstab
- # Desactive the swap file
- swapoff /swap_$app
- # And remove it
- rm /swap_$app
- fi
+ # If there a swap at this place
+ if [ -e /swap_$app ]
+ then
+ # Clean the fstab
+ sed -i "/#Swap added by $app/d" /etc/fstab
+ # Desactive the swap file
+ swapoff /swap_$app
+ # And remove it
+ rm /swap_$app
+ fi
}
# Check if the device of the main mountpoint "/" is an SD card
@@ -225,14 +227,14 @@ ynh_del_swap () {
#
# return 0 if it's an SD card, else 1
ynh_is_main_device_a_sd_card () {
- local main_device=$(lsblk --output PKNAME --noheadings $(findmnt / --nofsroot --uniq --output source --noheadings --first-only))
+ local main_device=$(lsblk --output PKNAME --noheadings $(findmnt / --nofsroot --uniq --output source --noheadings --first-only))
- if echo $main_device | grep --quiet "mmc" && [ $(tail -n1 /sys/block/$main_device/queue/rotational) == "0" ]
- then
- return 0
- else
- return 1
- fi
+ if echo $main_device | grep --quiet "mmc" && [ $(tail -n1 /sys/block/$main_device/queue/rotational) == "0" ]
+ then
+ return 0
+ else
+ return 1
+ fi
}
#=================================================
diff --git a/scripts/install b/scripts/install
index e37aba6..eb5f1fc 100644
--- a/scripts/install
+++ b/scripts/install
@@ -25,12 +25,12 @@ ynh_abort_if_errors
domain=$YNH_APP_ARG_DOMAIN
path_url="/"
-admin=$YNH_APP_ARG_ADMIN
export app_version=$YNH_APP_ARG_VERSION
oca=$YNH_APP_ARG_OCA
-admin_password=$YNH_APP_ARG_ADMIN_PASSWORD
lang=$YNH_APP_ARG_LANG
tz=$YNH_APP_ARG_TZ
+admin=$YNH_APP_ARG_ADMIN
+admin_password=$YNH_APP_ARG_ADMIN_PASSWORD
export app=$YNH_APP_INSTANCE_NAME
@@ -47,10 +47,10 @@ test ! -e "$final_path" || ynh_die --message="This path already contains a folde
export bin_file="$final_path/venv/bin/python3 $final_path/$appname/$FORKNAME-bin"
if [ "$app_version" = "9" ]; then
- bin_file="$final_path/venv/bin/python3 $final_path/$appname/$FORKNAME.py"
+ bin_file="$final_path/venv/bin/python3 $final_path/$appname/$FORKNAME.py"
fi
if [ "$app_version" = "8" ]; then
- bin_file="$final_path/venv/bin/python3 $final_path/$appname/$FORKNAME.py"
+ bin_file="$final_path/venv/bin/python3 $final_path/$appname/$FORKNAME.py"
fi
# Register (book) web path
@@ -141,10 +141,10 @@ ynh_add_nginx_config
#=================================================
if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then
- :
+ :
else
- ynh_script_progression --message="Adding swap..."
- ynh_add_swap --size=$swap_needed
+ ynh_script_progression --message="Adding swap..."
+ ynh_add_swap --size=$swap_needed
fi
#=================================================
@@ -153,26 +153,32 @@ fi
ynh_script_progression --message="Building $app..."
if ! wkhtmltopdf --version | grep "wkhtmltopdf 0.12.4 (with patched qt)"; then
- # The debian package has a bug so we deploy a more recent version
- if [ -f '../manifest.json' ] ; then
- ynh_setup_source /usr/
- else
- OLD_YNH_CWD=$YNH_CWD
- YNH_CWD=$YNH_CWD/../settings/conf
- ynh_setup_source /usr/
- YNH_CWD=$OLD_YNH_CWD
- fi
+ # The debian package has a bug so we deploy a more recent version
+ if [ -f '../manifest.json' ] ; then
+ ynh_setup_source /usr/
+ else
+ OLD_YNH_CWD=$YNH_CWD
+ YNH_CWD=$YNH_CWD/../settings/conf
+ ynh_setup_source /usr/
+ YNH_CWD=$OLD_YNH_CWD
+ fi
fi
pushd $final_path
- if grep "python3" $final_path/$appname/$FORKNAME-bin ; then
- python3 -m venv venv
- venv/bin/pip3 install wheel
- venv/bin/pip3 install -r $appname/requirements.txt
- else
- virtualenv venv
- venv/bin/pip install wheel
- venv/bin/pip install -r $appname/requirements.txt
- fi
+ RUSTUP_HOME="$final_path/.rustup" CARGO_HOME="$final_path/.cargo" bash -c 'curl -sSf -L https://static.rust-lang.org/rustup.sh | sh -s -- -y --default-toolchain=stable --profile=minimal'
+ PATH="$PATH:$final_path/.cargo/bin:$final_path/.local/bin:/usr/local/sbin"
+ if grep "python3" $final_path/$appname/$FORKNAME-bin ; then
+ python3 -m venv venv
+ venv/bin/pip3 install --upgrade pip
+ venv/bin/pip3 install wheel
+ venv/bin/pip3 install -r $appname/requirements.txt
+ else
+ virtualenv venv
+ venv/bin/pip3 install --upgrade pip
+ venv/bin/pip install wheel
+ venv/bin/pip install -r $appname/requirements.txt
+ fi
+ ynh_secure_remove --file="$final_path/.cargo"
+ ynh_secure_remove --file="$final_path/.rustup"
popd
#=================================================
diff --git a/scripts/restore b/scripts/restore
index 2effee2..ed0ac2a 100644
--- a/scripts/restore
+++ b/scripts/restore
@@ -40,10 +40,10 @@ export final_path=$(ynh_app_setting_get --app=$app --key=final_path)
export conf_file=$(ynh_app_setting_get --app=$app --key=conf_file)
export bin_file="$final_path/venv/bin/python $final_path/$appname/$FORKNAME-bin"
if [ "$app_version" = "9" ]; then
- bin_file="$final_path/venv/bin/python $final_path/$appname/$FORKNAME.py"
+ bin_file="$final_path/venv/bin/python $final_path/$appname/$FORKNAME.py"
fi
if [ "$app_version" = "8" ]; then
- bin_file="$final_path/venv/bin/python $final_path/$appname/$FORKNAME.py"
+ bin_file="$final_path/venv/bin/python $final_path/$appname/$FORKNAME.py"
fi
export preinstall=0
@@ -57,13 +57,6 @@ test ! -d $final_path \
#=================================================
# STANDARD RESTORATION STEPS
-#=================================================
-# RESTORE THE NGINX CONFIGURATION
-#=================================================
-ynh_script_progression --message="Restoring the NGINX web server configuration..."
-
-ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
-
#=================================================
# RECREATE THE DEDICATED USER
#=================================================
@@ -95,15 +88,22 @@ ynh_script_progression --message="Reinstalling dependencies..."
# Define and install dependencies
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
+#=================================================
+# RESTORE THE NGINX CONFIGURATION
+#=================================================
+ynh_script_progression --message="Restoring the NGINX web server configuration..."
+
+ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
+
#=================================================
# ADD SWAP
#=================================================
if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then
- :
+ :
else
- ynh_script_progression --message="Adding swap..."
- ynh_add_swap --size=$swap_needed
+ ynh_script_progression --message="Adding swap..."
+ ynh_add_swap --size=$swap_needed
fi
#=================================================
@@ -112,26 +112,32 @@ fi
ynh_script_progression --message="Building $app..."
if ! wkhtmltopdf --version | grep "wkhtmltopdf 0.12.4 (with patched qt)"; then
- # The debian package has a bug so we deploy a more recent version
- if [ -f '../manifest.json' ] ; then
- ynh_setup_source /usr/
- else
- OLD_YNH_CWD=$YNH_CWD
- YNH_CWD=$YNH_CWD/../settings/conf
- ynh_setup_source /usr/
- YNH_CWD=$OLD_YNH_CWD
- fi
+ # The debian package has a bug so we deploy a more recent version
+ if [ -f '../manifest.json' ] ; then
+ ynh_setup_source /usr/
+ else
+ OLD_YNH_CWD=$YNH_CWD
+ YNH_CWD=$YNH_CWD/../settings/conf
+ ynh_setup_source /usr/
+ YNH_CWD=$OLD_YNH_CWD
+ fi
fi
pushd $final_path
- if grep "python3" $final_path/$appname/$FORKNAME-bin ; then
- python3 -m venv venv
- venv/bin/pip3 install wheel
- venv/bin/pip3 install -r $appname/requirements.txt
- else
- virtualenv venv
- venv/bin/pip install wheel
- venv/bin/pip install -r $appname/requirements.txt
- fi
+ RUSTUP_HOME="$final_path/.rustup" CARGO_HOME="$final_path/.cargo" bash -c 'curl -sSf -L https://static.rust-lang.org/rustup.sh | sh -s -- -y --default-toolchain=stable --profile=minimal'
+ PATH="$PATH:$final_path/.cargo/bin:$final_path/.local/bin:/usr/local/sbin"
+ if grep "python3" $final_path/$appname/$FORKNAME-bin ; then
+ python3 -m venv venv
+ venv/bin/pip3 install --upgrade pip
+ venv/bin/pip3 install wheel
+ venv/bin/pip3 install -r $appname/requirements.txt
+ else
+ virtualenv venv
+ venv/bin/pip3 install --upgrade pip
+ venv/bin/pip install wheel
+ venv/bin/pip install -r $appname/requirements.txt
+ fi
+ ynh_secure_remove --file="$final_path/.cargo"
+ ynh_secure_remove --file="$final_path/.rustup"
popd
#=================================================
diff --git a/scripts/upgrade b/scripts/upgrade
index bd9ae58..5eb8b24 100644
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -100,6 +100,14 @@ ynh_script_progression --message="Upgrading dependencies..."
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
+#=================================================
+# NGINX CONFIGURATION
+#=================================================
+ynh_script_progression --message="Upgrading NGINX web server configuration..."
+
+# Create a dedicated NGINX config
+ynh_add_nginx_config
+
#=================================================
# SPECIFIC UPGRADE
#=================================================
@@ -107,10 +115,10 @@ ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
#=================================================
if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then
- :
+ :
else
- ynh_script_progression --message="Adding swap..."
- ynh_add_swap --size=$swap_needed
+ ynh_script_progression --message="Adding swap..."
+ ynh_add_swap --size=$swap_needed
fi
#=================================================
@@ -119,26 +127,32 @@ fi
ynh_script_progression --message="Building $app..."
if ! wkhtmltopdf --version | grep "wkhtmltopdf 0.12.4 (with patched qt)"; then
- # The debian package has a bug so we deploy a more recent version
- if [ -f '../manifest.json' ] ; then
- ynh_setup_source /usr/
- else
- OLD_YNH_CWD=$YNH_CWD
- YNH_CWD=$YNH_CWD/../settings/conf
- ynh_setup_source /usr/
- YNH_CWD=$OLD_YNH_CWD
- fi
+ # The debian package has a bug so we deploy a more recent version
+ if [ -f '../manifest.json' ] ; then
+ ynh_setup_source /usr/
+ else
+ OLD_YNH_CWD=$YNH_CWD
+ YNH_CWD=$YNH_CWD/../settings/conf
+ ynh_setup_source /usr/
+ YNH_CWD=$OLD_YNH_CWD
+ fi
fi
pushd $final_path
- if grep "python3" $final_path/$appname/$FORKNAME-bin ; then
- python3 -m venv venv
- venv/bin/pip3 install wheel
- venv/bin/pip3 install -r $appname/requirements.txt
- else
- virtualenv venv
- venv/bin/pip install wheel
- venv/bin/pip install -r $appname/requirements.txt
- fi
+ RUSTUP_HOME="$final_path/.rustup" CARGO_HOME="$final_path/.cargo" bash -c 'curl -sSf -L https://static.rust-lang.org/rustup.sh | sh -s -- -y --default-toolchain=stable --profile=minimal'
+ PATH="$PATH:$final_path/.cargo/bin:$final_path/.local/bin:/usr/local/sbin"
+ if grep "python3" $final_path/$appname/$FORKNAME-bin ; then
+ python3 -m venv venv
+ venv/bin/pip3 install --upgrade pip
+ venv/bin/pip3 install wheel
+ venv/bin/pip3 install -r $appname/requirements.txt
+ else
+ virtualenv venv
+ venv/bin/pip3 install --upgrade pip
+ venv/bin/pip install wheel
+ venv/bin/pip install -r $appname/requirements.txt
+ fi
+ ynh_secure_remove --file="$final_path/.cargo"
+ ynh_secure_remove --file="$final_path/.rustup"
popd
#=================================================