1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/libreerp_ynh.git synced 2024-09-03 19:36:13 +02:00

[enh] Install from sources

This commit is contained in:
ljf 2018-12-14 03:36:58 +01:00
parent 14965bd324
commit 4e8c709cf4
12 changed files with 140 additions and 445 deletions

View file

@ -2,7 +2,7 @@
auto_remove=1
; Manifest
domain="domain.tld" (DOMAIN)
version="10.0"
version="12"
oca=0
admin_password="testpassw0rD"
lang="en_US"
@ -17,13 +17,13 @@
upgrade=1
backup_restore=1
multi_instance=1
wrong_user=0
wrong_user=1
wrong_path=0
incorrect_path=0
corrupt_source=1
fail_download_source=1
port_already_use=1
final_path_already_use=0
final_path_already_use=1
;;; Levels
Level 1=auto
Level 2=auto
@ -35,3 +35,6 @@
Level 8=0
Level 9=0
Level 10=0
;;; Options
Email=ljf+odoo_ynh@reflexlibre.net
Notification=down

View file

@ -14,6 +14,33 @@ location @{{ app }} {
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 $server_name;
proxy_read_timeout 999999999;
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:8072;
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;
}

View file

@ -1,14 +0,0 @@
[Unit]
Description=Odoo
After=network.target
[Service]
Type=simple
User=odoo
Environment=PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
ExecStart={{ bin_file }} --config {{ conf_file }} --logfile /var/log/odoo/odoo-server.log
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target

View file

@ -1,12 +0,0 @@
[options]
; This is the password that allows database operations:
without_demo = all
admin_passwd = {{ admin_password }}
db_host = localhost
db_port = 5432
db_user = odoo
db_password = {{ dbpass }}
addons_path = {{ source_path }}addons
proxy_mode = true
dbfilter = ^{{ database }}$
logfile = /var/log/odoo/odoo-server.log

View file

@ -8,16 +8,16 @@
},
"maintainer": {
"name": "ljf",
"email": "ljf+ynh-odoo@reflexlibre.net"
"email": "ljf+odoo_ynh@reflexlibre.net"
},
"previous_maintainers": {
"name": "scith"
},
"version": "11.0-1",
"version": "12.0-0",
"url": "https://www.odoo.com",
"license": "LGPL-3.0,AGPL-3.0",
"requirements": {
"yunohost": ">= 2.6.0"
"yunohost": ">= 3.3.0"
},
"multi_instance": true,
"services": [
@ -38,8 +38,8 @@
"en": "Which version of Odoo do you want to install?",
"fr": "Quelle version d'Odoo souhaitez-vous installer ?"
},
"choices": ["8.0", "9.0", "10.0", "11.0", "12.0"],
"default": "12.0"
"choices": ["8", "9", "10", "11", "12"],
"default": "12"
}, {
"name": "oca",
"type": "boolean",

View file

@ -2,153 +2,49 @@
# Common variables
#
APPNAME="odoo"
function define_paths() {
command -v bc >/dev/null 2>&1 || ynh_package_install bc
# In odoo 10 some file change
if [ $(echo "$odoo_version >= 10" | bc) -ne 0 ]; then
if [ $(echo "$odoo_version >= 11" | bc) -ne 0 ]; then
export source_path=/usr/lib/python3/dist-packages/odoo/
else
export source_path=/usr/lib/python2.7/dist-packages/odoo/
fi
export conf_file=/etc/odoo/odoo.conf
export bin_file=/usr/bin/odoo
else
export source_path=/usr/lib/python2.7/dist-packages/openerp/
export conf_file=/etc/odoo/openerp-server.conf
export bin_file=/usr/bin/openerp-server
fi
}
function check_odoo_version () {
command -v bc >/dev/null 2>&1 || ynh_package_install bc
if [ $(echo "$odoo_version >= 10" | bc) -ne 0 ]; then
if [ -f /usr/bin/openerp-server ]; then
ynh_die "Another version of odoo is installed"
fi
else
if [ -f /usr/bin/odoo ]; then
ynh_die "Another version of odoo is installed"
fi
fi
}
function define_is_master() {
if [ -f $bin_file ]; then
export is_master=false
else
export is_master=true
fi
}
function define_port () {
if [ "$is_master" = true ]; then
export port=$(ynh_find_port 8069)
yunohost app checkport $port
if [[ ! $? -eq 0 ]]; then
ynh_die "Port 8069 unavailable" 1
fi
else
# FIXME find master port
export port="8069"
fi
}
function define_dbpass () {
# TODO set -x
if [ "$is_master" = true ]; then
# Generate random password
if [ "${1:-}" = "restore" ]; then
export dbpass=$(ynh_app_setting_get $app psqlpwd)
else
export dbpass=$(ynh_string_random)
fi
else
export dbpass=$(grep db_password /etc/odoo/odoo.conf | cut -d \= -f 2 | sed -e 's/^[ \t]*//')
fi
ynh_app_setting_set "$app" psqlpwd "$dbpass"
}
export APPNAME="odoo"
DEPENDENCIES="curl postgresql xfonts-75dpi xfonts-base wkhtmltopdf node-less python3-dev gcc libldap2-dev libssl-dev libsasl2-dev python3-pip python3-dev python3-venv python3-wheel libxslt-dev libzip-dev python3-setuptools python-virtualenv python-wheel python-setuptools libjpeg-dev zlib1g-dev"
# Install dependencies
function install_dependencies() {
ynh_add_swap 1024
if [ ! -f /etc/apt/sources.list.d/odoo.list ]; then
# Install Odoo
# Prepare installation
# We nee to setup postgresql before to let the odoo package make some magic
# see red comment on https://nightly.odoo.com/
ynh_package_install curl bc postgresql
# Install Odoo
curl -sS https://nightly.odoo.com/odoo.key | sudo apt-key add -
sh -c "echo 'deb http://nightly.odoo.com/${odoo_version}/nightly/deb/ ./' > /etc/apt/sources.list.d/odoo.list"
# TODO if 8.0 install https://www.odoo.com/apps/modules/8.0/shell/
fi
if is_jessie ; then
sudo echo "deb http://http.debian.net/debian jessie-backports main" | sudo tee /etc/apt/sources.list.d/jessie-backport.list
apt-get update
ynh_install_app_dependencies curl postgresql odoo xfonts-75dpi xfonts-base wkhtmltopdf node-less python-xlrd python3-dev gcc libldap2-dev libssl-dev libsasl2-dev python3-pip
pip3 install pyldap
fi
if is_stretch ; then
sudo echo "deb http://http.debian.net/debian stretch-backports main" | sudo tee /etc/apt/sources.list.d/stretch-backport.list
if [ $(echo "$odoo_version <= 10" | bc) -ne 0 ]; then
cat > /tmp/python-pypdf_1.13_all.control << EOF # Make a control file for equivs-build
Section: python
Package: python-pypdf
Version: 1.13
Description: fake package to provide python-pypdf
EOF
ynh_package_install python3-pip
ynh_package_install_from_equivs /tmp/python-pypdf_1.13_all.control
rm /tmp/python-pypdf_1.13_all.control
pip install pyPdf
fi
apt update
ynh_install_app_dependencies curl postgresql odoo xfonts-75dpi xfonts-base wkhtmltopdf node-less python-xlrd python3-dev gcc libldap2-dev libssl-dev libsasl2-dev python3-pip python3-num2words python3-pyldap python3-phonenumbers
fi
ynh_install_app_dependencies $DEPENDENCIES
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
ynh_setup_source /usr/
fi
}
# Create db
function create_general_db() {
service postgresql reload
if ! su -c "psql -lqt | cut -d \| -f 1 " - postgres | grep $APPNAME; then
# Generate random password
ynh_psql_execute_as_root "ALTER USER $APPNAME WITH CREATEDB;"
ynh_psql_execute_as_root "ALTER USER $APPNAME WITH PASSWORD '$dbpass';"
su -c "createdb -O $APPNAME $APPNAME" - postgres
pushd $final_path
if grep "python3" $final_path/$APPNAME/$APPNAME-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
popd
}
# Add services
function add_services() {
if ! grep "^postgresql:$" /etc/yunohost/services.yml; then
yunohost service add postgresql
fi
if ! grep "^odoo:$" /etc/yunohost/services.yml; then
ynh_configure odoo.service /etc/systemd/system/odoo.service
rm /etc/init.d/odoo
systemctl daemon-reload
ynh_configure app.service /etc/systemd/system/$app.service
systemctl daemon-reload
yunohost service add odoo --log /var/log/odoo/odoo-server.log
yunohost service stop odoo
yunohost service start odoo
yunohost service enable odoo
fi
yunohost service add $app --log /var/log/$app.log
yunohost service stop $app
yunohost service start $app
yunohost service enable $app
}
function ssowat_and_restart() {
# Restart odoo service
service odoo restart
service $app restart
# Configure SSOWat
ynh_sso_access "/web/database/manager"

View file

@ -1,53 +1,7 @@
log() {
echo "${1}"
}
info() {
log "[INFO] ${1}"
}
warn() {
log "[WARN] ${1}"
}
err() {
log "[ERR] ${1}"
}
ynh_check_var () {
test -n "$1" || ynh_die "$2"
}
ynh_exit_properly () {
exit_code=$?
if [ "$exit_code" -eq 0 ]; then
exit 0
fi
trap '' EXIT
set +eu
echo -e "\e[91m \e[1m"
err "$app script has encountered an error."
if type -t CLEAN_SETUP > /dev/null; then
CLEAN_SETUP
fi
ynh_die
}
# Activate signal capture
# Exit if a command fail, and if a variable is used unset.
# Capturing exit signals on shell script
#
# example: CLEAN_SETUP () {
# # Clean residual file un remove by remove script
# }
# ynh_trap_on
ynh_trap_on () {
set -eu
trap ynh_exit_properly EXIT # Capturing exit signals on shell script
}
ynh_export () {
local ynh_arg=""
for var in $@;
@ -78,43 +32,13 @@ ynh_sso_access () {
ynh_configure () {
local TEMPLATE=$1
local DEST=$2
type j2 2>/dev/null || sudo pip install j2cli
j2 "${YNH_CWD}/../conf/$TEMPLATE.j2" > "${YNH_CWD}/../conf/$TEMPLATE"
sudo cp "${YNH_CWD}/../conf/$TEMPLATE" "$DEST"
ynh_render_template "${YNH_CWD}/../conf/$TEMPLATE.j2" "$DEST"
}
ynh_configure_nginx () {
ynh_configure nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf
sudo service nginx reload
}
# Find a free port and return it
#
# example: port=$(ynh_find_port 8080)
#
# usage: ynh_find_port begin_port
# | arg: begin_port - port to start to search
ynh_find_port () {
port=$1
test -n "$port" || ynh_die "The argument of ynh_find_port must be a valid port."
while netcat -z 127.0.0.1 $port # Check if the port is free
do
port=$((port+1)) # Else, pass to next port
done
echo $port
}
ynh_rm_nginx_conf () {
if [ -e "/etc/nginx/conf.d/$domain.d/$app.conf" ]; then
sudo rm "/etc/nginx/conf.d/$domain.d/$app.conf"
sudo service nginx reload
fi
}
ynh_secure_rm () {
[[ "/var/www /opt /home/yunohost.app" =~ $1 ]] \
|| (test -n "$1" && sudo rm -Rf $1 )
}
# Upgrade
ynh_read_json () {
@ -136,80 +60,8 @@ ynh_exit_if_up_to_date () {
}
# # Execute a command as root user
#
# usage: ynh_psql_execute_as_root sql [db]
# | arg: sql - the SQL command to execute
# | arg: db - the database to connect to
ynh_psql_execute_as_root () {
sudo su -c "psql" - postgres <<< ${1}
}
# Create a user
#
# usage: ynh_psql_create_user user pwd [host]
# | arg: user - the user name to create
# | arg: pwd - the password to identify user by
ynh_psql_create_user() {
ynh_psql_execute_as_root \
"CREATE USER ${1} WITH PASSWORD '${2}';"
}
# Create a database and grant optionnaly privilegies to a user
#
# usage: ynh_psql_create_db db [user [pwd]]
# | arg: db - the database name to create
# | arg: user - the user to grant privilegies
# | arg: pwd - the password to identify user by
ynh_psql_create_db() {
db=$1
# grant all privilegies to user
if [[ $# -gt 1 ]]; then
ynh_psql_create_user ${2} "${3}"
sudo su -c "createdb -O ${2} $db" - postgres
else
sudo su -c "createdb $db" - postgres
fi
}
# Drop a database
#
# usage: ynh_psql_drop_db db
# | arg: db - the database name to drop
ynh_psql_drop_db() {
sudo su -c "dropdb ${1}" - postgres
}
# Drop a user
#
# usage: ynh_psql_drop_user user
# | arg: user - the user name to drop
ynh_psql_drop_user() {
sudo su -c "dropuser ${1}" - postgres
}
# Execute a command as another user
# usage: exec_as USER COMMAND [ARG ...]
exec_as() {
local USER=$1
shift 1
if [[ $USER = $(whoami) ]]; then
eval "$@"
else
# use sudo twice to be root and be allowed to use another user
sudo sudo -u "$USER" "$@"
fi
}
ynh_debian_release () {
lsb_release --codename --short
}
is_stretch () {
if [ "$(ynh_debian_release)" == "stretch" ]
if [ "$(ynh_get_debian_release)" == "stretch" ]
then
return 0
else
@ -218,7 +70,7 @@ is_stretch () {
}
is_jessie () {
if [ "$(ynh_debian_release)" == "jessie" ]
if [ "$(ynh_get_debian_release)" == "jessie" ]
then
return 0
else

View file

@ -9,27 +9,18 @@ source ../settings/scripts/_common.sh
app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get "$app" domain)
odoo_version=$(ynh_app_setting_get "$app" odoo_version)
define_paths
final_path=$(ynh_app_setting_get "$app" final_path)
# Backup sources & data
ynh_backup "${source_path}addons" "$1${source_path}addons"
mkdir -p /opt/odoo-oca-addons
ynh_backup "/opt/odoo-oca-addons" "$1/opt/odoo-oca-addons"
ynh_backup "${final_path}/$APPNAME"
ynh_backup "${final_path}/custom-addons"
ynh_backup "${final_path}/.local"
# Backup configuration
ynh_backup "$conf_file" "$1$conf_file"
ynh_backup "$conf_file"
# Copy NGINX configuration
ynh_backup "/etc/nginx/conf.d/${domain}.d/${app}.conf" "etc/nginx/conf.d/${domain}.d/${app}.conf"
ynh_backup "/etc/nginx/conf.d/${domain}.d/${app}.conf"
# Save postgresql conf
if is_jessie ; then
ynh_backup "/etc/postgresql/9.4/main/pg_hba.conf" "etc/postgresql/9.4/main/pg_hba.conf"
else
ynh_backup "/etc/postgresql/9.6/main/pg_hba.conf" "etc/postgresql/9.6/main/pg_hba.conf"
fi
# Copy database
database=${domain//./-}
sudo su -c "pg_dump $database" postgres > ./dump.sql
sudo su -c "pg_dump $app" postgres > ./dump.sql

View file

@ -6,66 +6,65 @@ source /usr/share/yunohost/helpers
source _future.sh
source _common.sh
ynh_trap_on
ynh_abort_if_errors
# Arguments from manifest
export app=$YNH_APP_INSTANCE_NAME
export domain=$YNH_APP_ARG_DOMAIN
ynh_export domain oca admin_password lang tz
export odoo_version=$YNH_APP_ARG_VERSION
export oca=$YNH_APP_ARG_OCA
export admin_password=$YNH_APP_ARG_ADMIN_PASSWORD
export lang=$YNH_APP_ARG_LANG
export tz=$YNH_APP_ARG_TZ
export is_public=0
export final_path="/var/www/$app"
export conf_file=/etc/$app/main.conf
export bin_file="$final_path/venv/bin/python $final_path/$APPNAME/$APPNAME-bin"
if [ "$odoo_version" = "9" ]; then
bin_file="$final_path/venv/bin/python $final_path/$APPNAME/$APPNAME.py"
fi
if [ "$odoo_version" = "8" ]; then
bin_file="$final_path/venv/bin/python $final_path/$APPNAME/$APPNAME.py"
fi
export db_name=$(ynh_sanitize_dbid $app)
export port=$(ynh_find_port 8069)
export port_chat=$(ynh_find_port 8072)
#=================================================
# CHECK IF THE APP CAN BE INSTALLED WITH THIS ARGS
#=================================================
ynh_check_var "$app" "app name not set"
ynh_webpath_available "$domain" "/"
check_odoo_version
define_paths
define_is_master
define_port
define_dbpass
test ! -e "$final_path" || ynh_die "This path already contains a folder"
ynh_webpath_available $domain "/"
ynh_webpath_register $app $domain "/"
#=================================================
# SETUP THE APP BY MODIFYING THE SYSTEM
#=================================================
function setup_files() {
# Set admin password
export database=${domain//./-}
ynh_configure openerp-server.conf $conf_file
chown odoo:odoo $conf_file
ynh_setup_source $final_path/$APPNAME $odoo_version
mkdir -p $final_path/custom-addons
chown -R $app:$app $final_path
ynh_configure server.conf $conf_file
chown $app:$app $conf_file
# Autoinstall the LDAP auth module
if [ $(echo "$odoo_version >= 10" | bc) -ne 0 ]; then
ynh_replace_string "^{$" "{'auto_install': True," ${source_path}addons/auth_ldap/__manifest__.py
if ls $final_path/$APPNAME/$APPNAME-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" ${source_path}addons/auth_ldap/__openerp__.py
ynh_replace_string "'auto_install': False" "'auto_install': True" ${final_path}/$APPNAME/addons/auth_ldap/__openerp__.py
fi
# Fix peer authentification issue
sed -i '/local\s*all\s*all\s*peer/i \
local all odoo password' /etc/postgresql/9.*/main/pg_hba.conf
touch /var/log/$app.log
chown $app:$app /var/log/$app.log
ynh_configure_nginx
}
function setup_database() {
# Setup database: not working
database=${domain//./-}
if [ $(echo "$odoo_version <= 8" | bc) -ne 0 ]; then
su -c "createdb -O $APPNAME $database" - postgres
fi
# Load translation
sudo -u odoo $bin_file -c $conf_file --stop-after-init -i auth_ldap -d $database
sudo -u odoo $bin_file -c $conf_file --stop-after-init -d $database --load-language $lang
sudo -u $app $bin_file -c $conf_file --stop-after-init -i auth_ldap -d $app
sudo -u $app $bin_file -c $conf_file --stop-after-init -d $app --load-language $lang
# Configure language, timezone and ldap
sudo -u odoo $bin_file shell -c $conf_file -d $database <<< \
sudo -u $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()
@ -92,12 +91,13 @@ self.company_id.ldaps.create({
self.env.cr.commit()
"
}
ynh_webpath_register "$app" "$domain" "/"
ynh_save_args domain odoo_version oca lang tz is_master port
install_dependencies
ynh_save_args domain odoo_version oca lang tz final_path conf_file db_name port port_chat
ynh_psql_test_if_first_run
ynh_psql_setup_db $db_name $db_name
export db_pass=$(ynh_app_setting_get $app psqlpwd)
ynh_system_user_create $app $final_path
setup_files
create_general_db
install_dependencies
add_services
setup_database
ssowat_and_restart

View file

@ -10,47 +10,19 @@ app=$YNH_APP_INSTANCE_NAME
# Retrieve app settings
domain=$(ynh_app_setting_get "$app" domain)
odoo_version=$(ynh_app_setting_get "$app" odoo_version)
if [ "$odoo_version" = "" ]; then
exit 0
fi
final_path=$(ynh_app_setting_get "$app" final_path)
database=${domain//./-}
is_master=$(ynh_app_setting_get "$app" is_master)
define_paths
yunohost service stop $app
yunohost service remove $app
ynh_psql_remove_db $app $app
yunohost service stop odoo
list=$(yunohost app list --installed | grep odoo)
# If removing master instance, remove Odoo.
if [ $(echo $list | wc -l) = 1 ]; then
rm -f /etc/apt/sources.list.d/odoo.list
apt-get update
yunohost service remove odoo
ynh_psql_drop_db $APPNAME
#ynh_psql_drop_user $APPNAME
else
# Set another app as master
if [ "$is_master" = "true" ]; then
for instance in $list; do
if [ "$instance" != "$app" ]; then
ynh_app_setting_set "$instance" is_master "true"
break
fi
done
is_master="false"
fi
fi
ynh_secure_remove "$final_path"
ynh_remove_app_dependencies
# Remove database
ynh_psql_drop_db $database
ynh_system_user_delete $app
if [ "$is_master" = "false" ]; then
yunohost service start odoo
fi
# Remove NGINX conf
ynh_rm_nginx_conf
ynh_remove_nginx_config
ynh_del_swap

View file

@ -6,59 +6,44 @@ source /usr/share/yunohost/helpers
source ../settings/scripts/_future.sh
source ../settings/scripts/_common.sh
ynh_trap_on
ynh_abort_if_errors
export app=$YNH_APP_INSTANCE_NAME
export domain=$(ynh_app_setting_get $app domain)
export odoo_version=$(ynh_app_setting_get $app odoo_version)
export oca=$(ynh_app_setting_get $app oca)
export port=$(ynh_app_setting_get $app port)
export port_chat=$(ynh_app_setting_get $app port_chat)
export db_name=$(ynh_app_setting_get $app db_name)
export is_public=0
#=================================================
# CHECK IF THE APP CAN BE RESTORED
#=================================================
ynh_check_var "$app" "app name not set"
ynh_webpath_available "$domain" "/"
check_odoo_version
define_paths
define_is_master
define_port
define_dbpass restore
#=================================================
# RESTORE THE APP BY MODIFYING THE SYSTEM
#=================================================
# Restore files
function restore_files () {
if [ "$is_master" = true ]; then
ynh_restore
chown -R odoo:odoo /var/lib/odoo/
chown postgres:postgres /etc/postgresql/9.*/main/pg_hba.conf
else
# If odoo is already setup we just restore nginx and add some missing
# modules. Other files are already on system, and we don't want to
# erase it
# Configure Nginx and reload
ynh_restore_file "/etc/nginx/conf.d/${domain}.d/${app}.conf"
# TODO Restore plugin/addons
fi
ynh_restore
chown -R $app:$app $final_path
chown $app:$app $conf_file
touch /var/log/$app.log
chown $app:$app /var/log/$app.log
}
# Restore database
function restore_database () {
# Restore database
database=${domain//./-}
su -c "createdb -O $APPNAME $database" - postgres
su -c "psql $database" postgres < ./dump.sql
su -c "psql $app" postgres < ./dump.sql
}
ynh_save_args is_master port
install_dependencies
ynh_psql_test_if_first_run
ynh_psql_setup_db $db_name $db_name $db_pass
ynh_system_user_create $app $final_path
restore_files
create_general_db
install_dependencies
add_services
restore_database
ssowat_and_restart

View file

@ -46,11 +46,6 @@ ynh_clean_setup () {
# Exit if an error occurs during the execution of the script
ynh_abort_if_errors
#=================================================
# CHECK THE PATH
#=================================================
path_url=$(ynh_normalize_url_path $path_url) # Vérifie et corrige la syntaxe du path.
#=================================================
# STEP Migrations
@ -59,13 +54,6 @@ path_url=$(ynh_normalize_url_path $path_url) # Vérifie et corrige la syntaxe du
if ynh_version_le "9.0-0" ; then
# set new args
odoo_version=${odoo_version:-$(ynh_app_setting_get "$app" version)}
if [ "$is_master" = "" ]; then
if [ "$(ynh_app_setting_get "$app" instance)" = "master" ];then
is_master="true"
else
is_master="false"
fi
fi
port=${port:-8069}
oca=${oca:-false}
ynh_save_args odoo_version oca is_master port
@ -80,8 +68,15 @@ if ynh_version_le "11.0-1" ; then
ynh_save_args major_upgrade
fi
ynh_system_user_create $app
ynh_setup_source "$final_path/$APPNAME" $odoo_version
mkdir -p $final_path/custom-addons
chown -R $app:$app $final_path
ynh_configure server.conf $conf_file
chown $app:$app $conf_file
touch /var/log/$app.log
chown $app:$app /var/log/$app.log
# Upgrade official package
apt-get install odoo -y -qq
install_dependencies
service $app restart