[fix] Update wkhtmltopdf to a stable version

This commit is contained in:
ljf 2016-12-14 10:55:15 +01:00
parent e348a48dd2
commit 173d6b9478
3 changed files with 122 additions and 19 deletions

105
scripts/_common.sh Normal file
View 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
}

View file

@ -11,6 +11,9 @@ admin_password=$YNH_APP_ARG_ADMIN_PASSWORD
database_password=$YNH_APP_ARG_DATABASE_PASSWORD
lang=$YNH_APP_ARG_LANG
# Load common variables
source ./_common.sh
# Source YunoHost helpers
. /usr/share/yunohost/helpers
@ -52,12 +55,19 @@ else
# Initialize installation
ynh_package_install postgresql
sudo su -c "psql" postgres <<< \
"CREATE USER $app WITH PASSWORD '$database_password' CREATEDB;"
# This db may be unused
dbuser=$app
dbname=$app
ynh_psql_create_db "$dbname" "$dbuser" "$database_password"
ynh_package_install odoo
# 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
# TODO Support @ in password
@ -79,22 +89,6 @@ else
sudo yunohost service start odoo
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
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

View file

@ -2,6 +2,10 @@
set -eu
app=$YNH_APP_INSTANCE_NAME
# Load common variables
source ./_common.sh
# Source YunoHost helpers
. /usr/share/yunohost/helpers