[fix] Update wkhtmltopdf to a stable version
This commit is contained in:
parent
e348a48dd2
commit
173d6b9478
3 changed files with 122 additions and 19 deletions
105
scripts/_common.sh
Normal file
105
scripts/_common.sh
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
#
|
||||||
|
# Common variables
|
||||||
|
#
|
||||||
|
|
||||||
|
APPNAME="odoo"
|
||||||
|
|
||||||
|
|
||||||
|
# Package name for dependencies
|
||||||
|
DEPS_PKG_NAME="${APPNAME}-deps"
|
||||||
|
|
||||||
|
# Remote URL to fetch tarball
|
||||||
|
SOURCE_URL="http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz"
|
||||||
|
|
||||||
|
# Remote URL to fetch tarball checksum
|
||||||
|
SOURCE_SHA256="049b2cdec9a8254f0ef8ac273afaf54f7e25459a273e27189591edc7d7cf29db"
|
||||||
|
|
||||||
|
# App package root directory should be the parent folder
|
||||||
|
PKGDIR=$(cd ../; pwd)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Common helpers
|
||||||
|
#
|
||||||
|
|
||||||
|
# Create a user
|
||||||
|
#
|
||||||
|
# usage: ynh_mysql_create_user user pwd [host]
|
||||||
|
# | arg: user - the user name to create
|
||||||
|
# | arg: pwd - the password to identify user by
|
||||||
|
ynh_psql_create_user() {
|
||||||
|
sudo su -c "psql" postgres <<< \
|
||||||
|
"CREATE USER ${1} WITH PASSWORD '${2}';"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create a database and grant optionnaly privilegies to a user
|
||||||
|
#
|
||||||
|
# usage: ynh_mysql_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_mysql_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_mysql_drop_user user
|
||||||
|
# | arg: user - the user name to drop
|
||||||
|
ynh_psql_drop_user() {
|
||||||
|
sudo su -c "dropuser ${1}" postgres
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Download and extract sources to the given directory
|
||||||
|
# usage: extract_sources DESTDIR [AS_USER]
|
||||||
|
extract_sources() {
|
||||||
|
local DESTDIR=$1
|
||||||
|
local AS_USER=${2:-admin}
|
||||||
|
|
||||||
|
# retrieve and extract Roundcube tarball
|
||||||
|
tarball="/tmp/${APPNAME}.tar.gz"
|
||||||
|
rm -f "$tarball"
|
||||||
|
wget -q -O "$tarball" "$SOURCE_URL" \
|
||||||
|
|| ynh_die "Unable to download tarball"
|
||||||
|
echo "$SOURCE_SHA256 $tarball" | sha256sum -c >/dev/null \
|
||||||
|
|| ynh_die "Invalid checksum of downloaded tarball"
|
||||||
|
exec_as "$AS_USER" tar xzf "$tarball" -C "$DESTDIR" --strip-components 1 \
|
||||||
|
|| ynh_die "Unable to extract tarball"
|
||||||
|
rm -f "$tarball"
|
||||||
|
|
||||||
|
# apply patches
|
||||||
|
(cd "$DESTDIR" \
|
||||||
|
&& for p in ${PKGDIR}/patches/*.patch; do \
|
||||||
|
exec_as "$AS_USER" patch -p1 < $p; done) \
|
||||||
|
|| ynh_die "Unable to apply patches"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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
|
||||||
|
}
|
|
@ -11,6 +11,9 @@ admin_password=$YNH_APP_ARG_ADMIN_PASSWORD
|
||||||
database_password=$YNH_APP_ARG_DATABASE_PASSWORD
|
database_password=$YNH_APP_ARG_DATABASE_PASSWORD
|
||||||
lang=$YNH_APP_ARG_LANG
|
lang=$YNH_APP_ARG_LANG
|
||||||
|
|
||||||
|
# Load common variables
|
||||||
|
source ./_common.sh
|
||||||
|
|
||||||
# Source YunoHost helpers
|
# Source YunoHost helpers
|
||||||
. /usr/share/yunohost/helpers
|
. /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
@ -52,12 +55,19 @@ else
|
||||||
|
|
||||||
# Initialize installation
|
# Initialize installation
|
||||||
ynh_package_install postgresql
|
ynh_package_install postgresql
|
||||||
sudo su -c "psql" postgres <<< \
|
# This db may be unused
|
||||||
"CREATE USER $app WITH PASSWORD '$database_password' CREATEDB;"
|
dbuser=$app
|
||||||
|
dbname=$app
|
||||||
|
ynh_psql_create_db "$dbname" "$dbuser" "$database_password"
|
||||||
ynh_package_install odoo
|
ynh_package_install odoo
|
||||||
|
|
||||||
# Install wkhtmltopdf to print PDF reports
|
# Install wkhtmltopdf to print PDF reports
|
||||||
ynh_package_install wkhtmltopdf
|
ynh_package_install xfonts-75dpi xfonts-base wkhtmltopdf
|
||||||
|
|
||||||
|
# The debian package has a bug so we deploy a more recent version
|
||||||
|
extract_sources "/usr/" "$app"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Set admin password
|
# Set admin password
|
||||||
# TODO Support @ in password
|
# TODO Support @ in password
|
||||||
|
@ -79,22 +89,6 @@ else
|
||||||
sudo yunohost service start odoo
|
sudo yunohost service start odoo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_psql_create_user() {
|
|
||||||
sudo su -c "psql" postgres <<< \
|
|
||||||
"CREATE USER ${1} WITH PASSWORD '${2}';"
|
|
||||||
}
|
|
||||||
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
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
# Configure Nginx and reload
|
# Configure Nginx and reload
|
||||||
sed -i "s@#YNH_APP_INSTANCE_NAME#@${YNH_APP_INSTANCE_NAME}@g" ../conf/nginx.conf
|
sed -i "s@#YNH_APP_INSTANCE_NAME#@${YNH_APP_INSTANCE_NAME}@g" ../conf/nginx.conf
|
||||||
sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf
|
sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
|
# Load common variables
|
||||||
|
source ./_common.sh
|
||||||
|
|
||||||
# Source YunoHost helpers
|
# Source YunoHost helpers
|
||||||
. /usr/share/yunohost/helpers
|
. /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue