mirror of
https://github.com/YunoHost-Apps/roundcube_ynh.git
synced 2024-09-03 20:16:28 +02:00
[enh] Ask to install CardDAV plugin with presets for Baïkal and ownCloud
This commit is contained in:
parent
9ecfb49896
commit
b7ba49faf3
7 changed files with 117 additions and 264 deletions
15
README.md
15
README.md
|
@ -23,6 +23,12 @@ or from the Web administration:
|
||||||
* Scroll to the bottom of the page and put `https://github.com/jeromelebleu/roundcube_ynh/tree/dev`
|
* Scroll to the bottom of the page and put `https://github.com/jeromelebleu/roundcube_ynh/tree/dev`
|
||||||
under **Install custom app**.
|
under **Install custom app**.
|
||||||
|
|
||||||
|
## Upgrade
|
||||||
|
|
||||||
|
You can upgrade to this package from the command line for testing purpose with:
|
||||||
|
|
||||||
|
$ sudo yunohost app upgrade -u https://github.com/jeromelebleu/roundcube_ynh/tree/dev roundcube
|
||||||
|
|
||||||
## Extend and tweaks
|
## Extend and tweaks
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
@ -75,14 +81,7 @@ steps as needed.
|
||||||
You can also download the plugin and put it under the `plugins/` directory. In that
|
You can also download the plugin and put it under the `plugins/` directory. In that
|
||||||
case, do not forget to change ownerships to this folder to `www-data`.
|
case, do not forget to change ownerships to this folder to `www-data`.
|
||||||
|
|
||||||
## TODO
|
## Links
|
||||||
|
|
||||||
* Ask for rcmcarddav installation and/or check if *Baikal* or *ownCloud*
|
|
||||||
is installed
|
|
||||||
* Move log file outside of the public folder or protect it at least
|
|
||||||
* ...
|
|
||||||
|
|
||||||
## Links ##
|
|
||||||
|
|
||||||
**Roundcube**: https://roundcube.net/
|
**Roundcube**: https://roundcube.net/
|
||||||
|
|
||||||
|
|
41
conf/carddav.config.inc.php
Normal file
41
conf/carddav.config.inc.php
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
//// RCMCardDAV Plugin Admin Settings
|
||||||
|
|
||||||
|
//// ** ADDRESSBOOK PRESETS
|
||||||
|
|
||||||
|
//// PRESET FOR: baikal
|
||||||
|
//$prefs['Baïkal'] = array(
|
||||||
|
// // required attributes
|
||||||
|
// 'name' => 'Baïkal',
|
||||||
|
// 'username' => '%u',
|
||||||
|
// 'password' => '%p',
|
||||||
|
// 'url' => '{baikal_url}/card.php/addressbooks/%u/',
|
||||||
|
//
|
||||||
|
// // optional attributes
|
||||||
|
// 'active' => true,
|
||||||
|
// 'readonly' => false,
|
||||||
|
// 'refresh_time' => '00:05:00',
|
||||||
|
//
|
||||||
|
// 'fixed' => array('username', 'password'),
|
||||||
|
// 'hide' => false,
|
||||||
|
//);
|
||||||
|
//// END: baikal
|
||||||
|
|
||||||
|
//// PRESET FOR: owncloud
|
||||||
|
//$prefs['ownCloud'] = array(
|
||||||
|
// // required attributes
|
||||||
|
// 'name' => 'ownCloud',
|
||||||
|
// 'username' => '%u',
|
||||||
|
// 'password' => '%p',
|
||||||
|
// 'url' => '{owncloud_url}/remote.php/dav/addressbooks/users/%u/default/',
|
||||||
|
//
|
||||||
|
// // optional attributes
|
||||||
|
// 'active' => true,
|
||||||
|
// 'readonly' => false,
|
||||||
|
// 'refresh_time' => '00:05:00',
|
||||||
|
//
|
||||||
|
// 'fixed' => array('username', 'password'),
|
||||||
|
// 'hide' => false,
|
||||||
|
//);
|
||||||
|
//// END: owncloud
|
|
@ -1,209 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
//// RCMCardDAV Plugin Admin Settings
|
|
||||||
|
|
||||||
//// ** GLOBAL SETTINGS
|
|
||||||
|
|
||||||
// Disallow users to add / edit / delete custom addressbooks (default: false)
|
|
||||||
//
|
|
||||||
// If true, User cannot add custom addressbooks
|
|
||||||
// If false, user can add / edit / delete custom addressbooks
|
|
||||||
//
|
|
||||||
// This option only affects custom addressbooks. Preset addressbooks (see below)
|
|
||||||
// are not affected.
|
|
||||||
// $prefs['_GLOBAL']['fixed'] = true;
|
|
||||||
|
|
||||||
// When enabled, this option hides the 'CardDAV' section inside Preferences.
|
|
||||||
// $prefs['_GLOBAL']['hide_preferences'] = true;
|
|
||||||
|
|
||||||
// Scheme for storing the CardDAV passwords.
|
|
||||||
// Options:
|
|
||||||
// plain: store as plaintext
|
|
||||||
// base64: store encoded with base64 (default)
|
|
||||||
// encrypted: store encrypted with IMAP password of the user
|
|
||||||
// NOTE: if the IMAP password of the user changes, the stored
|
|
||||||
// CardDAV passwords cannot be decrypted anymore and the user
|
|
||||||
// needs to reenter them.
|
|
||||||
// $prefs['_GLOBAL']['pwstore_scheme'] = 'base64';
|
|
||||||
|
|
||||||
//// ** ADDRESSBOOK PRESETS
|
|
||||||
|
|
||||||
// Each addressbook preset takes the following form:
|
|
||||||
/*
|
|
||||||
$prefs['<Presetname>'] = array(
|
|
||||||
// required attributes
|
|
||||||
'name' => '<Addressbook Name>',
|
|
||||||
'username' => '<CardDAV Username>',
|
|
||||||
'password' => '<CardDAV Password>',
|
|
||||||
'url' => '<CardDAV URL>',
|
|
||||||
|
|
||||||
// optional attributes
|
|
||||||
'active' => <true or false>,
|
|
||||||
'readonly' => <true or false>,
|
|
||||||
'refresh_time' => '<Refresh Time in Hours, Format HH[:MM[:SS]]>',
|
|
||||||
'preemptive_auth' => <1 or 0>,
|
|
||||||
|
|
||||||
// attributes that are fixed (i.e., not editable by the user) and
|
|
||||||
// auto-updated for this preset
|
|
||||||
'fixed' => array( < 0 or more of the other attribute keys > ),
|
|
||||||
|
|
||||||
// hide this preset from CalDAV preferences section so users can't even
|
|
||||||
// see it
|
|
||||||
'hide' => <true or false>,
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
|
|
||||||
// All values in angle brackets <VALUE> have to be substituted.
|
|
||||||
//
|
|
||||||
// The meaning of the different parameters is as follows:
|
|
||||||
//
|
|
||||||
// <Presetname>: Unique preset name, must not be '_GLOBAL'. The presetname is
|
|
||||||
// not user visible and only used for an internal mapping between
|
|
||||||
// addressbooks created from a preset and the preset itself. You
|
|
||||||
// should never change this throughout its lifetime.
|
|
||||||
//
|
|
||||||
// The following parameters are REQUIRED and need to be specified for any preset.
|
|
||||||
//
|
|
||||||
// name: User-visible name of the addressbook. If the server provides
|
|
||||||
// an additional display name for the addressbooks found for the
|
|
||||||
// preset, it will be appended in brackets to this name, except
|
|
||||||
// if carddav_name_only is true (see below).
|
|
||||||
//
|
|
||||||
// username: CardDAV username to access the addressbook. Set this setting
|
|
||||||
// to '%u' to use the roundcube username.
|
|
||||||
// In case one uses an email address as username there is the
|
|
||||||
// additional option to choose '%l', which will only use the
|
|
||||||
// local part of the username (eg: user.name@example.com will
|
|
||||||
// become user.name).
|
|
||||||
//
|
|
||||||
// password: CardDAV password to access the addressbook. Set this setting
|
|
||||||
// to '%p' to use the roundcube password. The password will not
|
|
||||||
// be stored in the database when using %p.
|
|
||||||
//
|
|
||||||
// url: URL where to find the CardDAV addressbook(s). If the given URL
|
|
||||||
// refers directly to an addressbook, only this single
|
|
||||||
// addressbook will be added. If the URL points somewhere in the
|
|
||||||
// CardDAV space, but _not_ to the location of a particular
|
|
||||||
// addressbook, the server will be queried for the available
|
|
||||||
// addressbooks and all of them will be added. You can use %u
|
|
||||||
// within the URL as a placeholder for the CardDAV username.
|
|
||||||
// '%l' works the same way as it does for the username field.
|
|
||||||
//
|
|
||||||
// The following parameters are OPTIONAL and need to be specified only if the default
|
|
||||||
// value is not acceptable.
|
|
||||||
//
|
|
||||||
// active: If this parameter is false, the addressbook is not used by roundcube
|
|
||||||
// unless the user changes this setting.
|
|
||||||
// Default: true
|
|
||||||
//
|
|
||||||
// carddav_name_only:
|
|
||||||
// If this parameter is true, only the server provided displayname
|
|
||||||
// is used for addressbooks created from this preset, except if
|
|
||||||
// the server does not provide a display name.
|
|
||||||
// Default: false
|
|
||||||
//
|
|
||||||
// readonly: If this parameter is true, the addressbook will only be
|
|
||||||
// accessible in read-only mode, i.e., the user will not be able
|
|
||||||
// to add, modify or delete contacts in the addressbook.
|
|
||||||
// Default: false
|
|
||||||
//
|
|
||||||
// refresh_time: Time interval for that cached versions of the addressbook
|
|
||||||
// entries should be used, in hours. After this time interval has
|
|
||||||
// passed since the last pull from the server, it will be
|
|
||||||
// refreshed when the addressbook is accessed the next time.
|
|
||||||
// Default: 01:00:00
|
|
||||||
//
|
|
||||||
// preemptive_auth:
|
|
||||||
// If this parameter is 1, the authentication headers will be sent
|
|
||||||
// automatically with every request, regardless of the server
|
|
||||||
// requesting them or not.
|
|
||||||
// This must be set for ownCloud to work correctly.
|
|
||||||
// Default: 0
|
|
||||||
//
|
|
||||||
// fixed: Array of parameter keys that must not be changed by the user.
|
|
||||||
// Note that only fixed parameters will be automatically updated
|
|
||||||
// for existing addressbooks created from presets. Otherwise the
|
|
||||||
// user may already have changed the setting, and his change
|
|
||||||
// would be lost. You can add any of the above keys, but it the
|
|
||||||
// setting only affects parameters that can be changed via the
|
|
||||||
// settings pane (e.g., readonly cannot be changed by the user
|
|
||||||
// anyway). Still only parameters listed as fixed will
|
|
||||||
// automatically updated if the preset is changed.
|
|
||||||
// Default: empty, all settings modifiable by user
|
|
||||||
//
|
|
||||||
// !!! WARNING: Only add 'url' to the list of fixed addressbooks
|
|
||||||
// if it _directly_ points to an address book collection.
|
|
||||||
// Otherwise, the plugin will initially lookup the URLs for the
|
|
||||||
// collections on the server, and at the next login overwrite it
|
|
||||||
// with the fixed value stored here. Therefore, if you change the
|
|
||||||
// URL, you have two options:
|
|
||||||
// 1) If the new URL is a variation of the old one (e.g. hostname
|
|
||||||
// change), you can run an SQL UPDATE query directly in the
|
|
||||||
// database to adopt all addressbooks.
|
|
||||||
// 2) If the new URL is not easily derivable from the old one,
|
|
||||||
// change the key of the preset and change the URL. Addressbooks
|
|
||||||
// belonging to the old preset will be deleted upon the next
|
|
||||||
// login of the user and freshly created.
|
|
||||||
//
|
|
||||||
// hide: Whether this preset should be hidden from the CalDAV listing
|
|
||||||
// on the preferences page.
|
|
||||||
|
|
||||||
|
|
||||||
// How Preset Updates work
|
|
||||||
//
|
|
||||||
// Preset addressbooks are created for a user as she logs in.
|
|
||||||
|
|
||||||
//// ** ADDRESSBOOK PRESETS - EXAMPLE: Two Addressbook Presets
|
|
||||||
|
|
||||||
//// Preset 1: Personal
|
|
||||||
/*
|
|
||||||
$prefs['Personal'] = array(
|
|
||||||
// required attributes
|
|
||||||
'name' => 'Personal',
|
|
||||||
// will be substituted for the roundcube username
|
|
||||||
'username' => '%u',
|
|
||||||
// will be substituted for the roundcube password
|
|
||||||
'password' => '%p',
|
|
||||||
// %u will be substituted for the CardDAV username
|
|
||||||
'url' => 'https://ical.example.org/caldav.php/%u/Personal',
|
|
||||||
|
|
||||||
'active' => true,
|
|
||||||
'readonly' => false,
|
|
||||||
'refresh_time' => '02:00:00',
|
|
||||||
|
|
||||||
'fixed' => array( 'username' ),
|
|
||||||
'hide' => false,
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
|
|
||||||
//// Preset 2: Corporate
|
|
||||||
/*
|
|
||||||
$prefs['Work'] = array(
|
|
||||||
'name' => 'Corporate',
|
|
||||||
'username' => 'CorpUser',
|
|
||||||
'password' => 'C0rpPasswo2d',
|
|
||||||
'url' => 'https://ical.example.org/caldav.php/%u/Corporate',
|
|
||||||
|
|
||||||
'fixed' => array( 'name', 'username', 'password' ),
|
|
||||||
'hide' => true,
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
|
|
||||||
$prefs['baikal'] = array(
|
|
||||||
// required attributes
|
|
||||||
'name' => 'CardDAV',
|
|
||||||
// will be substituted for the roundcube username
|
|
||||||
'username' => '%u',
|
|
||||||
// will be substituted for the roundcube password
|
|
||||||
'password' => '%p',
|
|
||||||
// %u will be substituted for the CardDAV username
|
|
||||||
'url' => 'https://yuno_baikal_domainyuno_baikal_path/card.php/addressbooks/%u/default/',
|
|
||||||
|
|
||||||
'active' => true,
|
|
||||||
'readonly' => false,
|
|
||||||
'refresh_time' => '00:05:00',
|
|
||||||
|
|
||||||
'fixed' => array( 'username', 'password' ),
|
|
||||||
'hide' => false,
|
|
||||||
);
|
|
||||||
|
|
|
@ -42,6 +42,15 @@
|
||||||
},
|
},
|
||||||
"example": "/webmail",
|
"example": "/webmail",
|
||||||
"default": "/webmail"
|
"default": "/webmail"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "with_carddav",
|
||||||
|
"type": "boolean",
|
||||||
|
"ask": {
|
||||||
|
"en": "Install CardDAV synchronization plugin?",
|
||||||
|
"fr": "Installer le plugin de synchronisation CardDAV ?"
|
||||||
|
},
|
||||||
|
"default": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,3 +88,35 @@ init_composer() {
|
||||||
exec_composer "$AS_USER" "$DESTDIR" install --no-dev \
|
exec_composer "$AS_USER" "$DESTDIR" install --no-dev \
|
||||||
|| ynh_die "Unable to update Roundcube core dependencies"
|
|| ynh_die "Unable to update Roundcube core dependencies"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Install and configure CardDAV plugin for Roundcube
|
||||||
|
# usage: install_carddav DESTDIR [AS_USER]
|
||||||
|
install_carddav() {
|
||||||
|
local DESTDIR=$1
|
||||||
|
local AS_USER=${2:-www-data}
|
||||||
|
|
||||||
|
local carddav_config="${DESTDIR}/plugins/carddav/config.inc.php"
|
||||||
|
local carddav_tmp_config="${PKGDIR}/conf/carddav.config.inc.php"
|
||||||
|
|
||||||
|
exec_composer "$AS_USER" "$DESTDIR" require \
|
||||||
|
"roundcube/carddav dev-master"
|
||||||
|
|
||||||
|
# Look for installed and supported CardDAV servers
|
||||||
|
for carddav_app in "owncloud" "baikal"; do
|
||||||
|
sudo yunohost app list --installed -f "$carddav_app" | grep -q id \
|
||||||
|
|| continue
|
||||||
|
|
||||||
|
# Retrieve app settings and enable relevant preset
|
||||||
|
carddav_domain=$(ynh_app_setting_get "$carddav_app" domain)
|
||||||
|
carddav_path=$(ynh_app_setting_get "$carddav_app" path)
|
||||||
|
carddav_url="https://${carddav_domain}${carddav_path%/}"
|
||||||
|
sed -i "s#{${carddav_app}_url}#${carddav_url}#g" "$carddav_tmp_config"
|
||||||
|
sed -i \
|
||||||
|
"/\/\/\/\/ PRESET FOR: ${carddav_app}/\
|
||||||
|
,/\/\/\/\/ END: ${carddav_app}/s/^\/\///" "$carddav_tmp_config"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Copy plugin the configuration file
|
||||||
|
sudo cp "$carddav_tmp_config" "$carddav_config"
|
||||||
|
sudo chown "${AS_USER}:" "$carddav_config"
|
||||||
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ app=$YNH_APP_INSTANCE_NAME
|
||||||
# Retrieve arguments
|
# Retrieve arguments
|
||||||
domain=$1
|
domain=$1
|
||||||
path=${2%/}
|
path=${2%/}
|
||||||
|
with_carddav=$3
|
||||||
|
|
||||||
# Load common variables
|
# Load common variables
|
||||||
. ./_common.sh
|
. ./_common.sh
|
||||||
|
@ -40,8 +41,8 @@ deskey=$(ynh_string_random 24)
|
||||||
dbpass=$(ynh_string_random)
|
dbpass=$(ynh_string_random)
|
||||||
|
|
||||||
# Initialize database
|
# Initialize database
|
||||||
ynh_mysql_create_db $dbname $dbuser $dbpass
|
ynh_mysql_create_db "$dbname" "$dbuser" "$dbpass"
|
||||||
ynh_mysql_connect_as $dbuser $dbpass $dbname \
|
ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" \
|
||||||
< "${TMPDIR}/SQL/mysql.initial.sql"
|
< "${TMPDIR}/SQL/mysql.initial.sql"
|
||||||
|
|
||||||
# Copy and set Roundcube configuration
|
# Copy and set Roundcube configuration
|
||||||
|
@ -68,32 +69,17 @@ exec_composer www-data "$DESTDIR" require \
|
||||||
"sblaisot/automatic_addressbook"
|
"sblaisot/automatic_addressbook"
|
||||||
installed_plugins+=" 'contextmenu', 'automatic_addressbook',"
|
installed_plugins+=" 'contextmenu', 'automatic_addressbook',"
|
||||||
|
|
||||||
|
# Instal CardDAV plugin
|
||||||
|
if [[ $with_carddav -eq 1 ]]; then
|
||||||
|
install_carddav "$DESTDIR" \
|
||||||
|
&& installed_plugins+=" 'carddav'," \
|
||||||
|
|| echo "Unable to install CardDAV plugin" >&2
|
||||||
|
fi
|
||||||
|
|
||||||
# Update Roundcube configuration
|
# Update Roundcube configuration
|
||||||
sudo sed -i "s#^\s*// installed plugins#&\n ${installed_plugins}#" \
|
sudo sed -i "s#^\s*// installed plugins#&\n ${installed_plugins}#" \
|
||||||
"${DESTDIR}/config/config.inc.php"
|
"${DESTDIR}/config/config.inc.php"
|
||||||
|
|
||||||
## Install rcmcarddav TODO: if baikal is detected
|
|
||||||
#sudo yunohost app list -f baikal --json | grep '"installed": true'
|
|
||||||
#if [ "$?" -eq 0 ]; then
|
|
||||||
# echo "Detected Baikal"
|
|
||||||
#
|
|
||||||
# caldavdomain=$(sudo yunohost app setting baikal domain)
|
|
||||||
# caldavpath=$(sudo yunohost app setting baikal path)
|
|
||||||
# caldavpath=${caldavpath%/}
|
|
||||||
#
|
|
||||||
# sed -i "s@yuno_baikal_domain@$caldavdomain@g" ../conf/rcmcarddav.config.inc.php
|
|
||||||
# sed -i "s@yuno_baikal_path@$caldavpath@g" ../conf/rcmcarddav.config.inc.php
|
|
||||||
# sudo cp ../conf/rcmcarddav.config.inc.php $final_path/plugins/carddav/config.inc.php
|
|
||||||
#
|
|
||||||
# sudo sed -i "s@yuno_enable_carddav@True@g" $final_path/config/main.inc.php
|
|
||||||
#
|
|
||||||
# mysql -u $dbuser -p$dbpass $dbname < ../sources/plugins/carddav/dbinit/mysql-drop.sql
|
|
||||||
# mysql -u $dbuser -p$dbpass $dbname < ../sources/plugins/carddav/dbinit/mysql.sql
|
|
||||||
#else
|
|
||||||
# mysql -u $dbuser -p$dbpass $dbname < ../sources/plugins/carddav/dbinit/mysql-drop.sql
|
|
||||||
# sudo sed -i "s@yuno_enable_carddav@False@g" $final_path/config/main.inc.php
|
|
||||||
#fi
|
|
||||||
|
|
||||||
# Copy and set nginx configuration
|
# Copy and set nginx configuration
|
||||||
nginx_conf="/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
nginx_conf="/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
||||||
sed -i "s@#PATH#@${path:-/}@g" ../conf/nginx.conf
|
sed -i "s@#PATH#@${path:-/}@g" ../conf/nginx.conf
|
||||||
|
@ -109,7 +95,8 @@ sudo chown root: $phpfpm_conf
|
||||||
sudo chmod 644 $phpfpm_conf
|
sudo chmod 644 $phpfpm_conf
|
||||||
|
|
||||||
# Save app settings
|
# Save app settings
|
||||||
ynh_app_setting_set $app mysqlpwd $dbpass
|
ynh_app_setting_set "$app" with_carddav "$with_carddav"
|
||||||
|
ynh_app_setting_set "$app" mysqlpwd "$dbpass"
|
||||||
|
|
||||||
# Reload services
|
# Reload services
|
||||||
sudo service php5-fpm restart || true
|
sudo service php5-fpm restart || true
|
||||||
|
|
|
@ -21,6 +21,7 @@ domain=$(ynh_app_setting_get "$app" domain)
|
||||||
path=$(ynh_app_setting_get "$app" path)
|
path=$(ynh_app_setting_get "$app" path)
|
||||||
path=${path%/}
|
path=${path%/}
|
||||||
dbpass=$(ynh_app_setting_get "$app" mysqlpwd)
|
dbpass=$(ynh_app_setting_get "$app" mysqlpwd)
|
||||||
|
with_carddav=$(ynh_app_setting_get "$app" with_carddav)
|
||||||
|
|
||||||
# Check destination directory
|
# Check destination directory
|
||||||
DESTDIR="/var/www/$app"
|
DESTDIR="/var/www/$app"
|
||||||
|
@ -72,32 +73,25 @@ exec_composer www-data "$DESTDIR" require \
|
||||||
"sblaisot/automatic_addressbook"
|
"sblaisot/automatic_addressbook"
|
||||||
installed_plugins+=" 'contextmenu', 'automatic_addressbook',"
|
installed_plugins+=" 'contextmenu', 'automatic_addressbook',"
|
||||||
|
|
||||||
|
# Guess with_carddav value if empty
|
||||||
|
if [[ -z "${with_carddav:-}" ]]; then
|
||||||
|
[[ -d "${DESTDIR}/plugins/carddav" ]] \
|
||||||
|
&& with_carddav=1 \
|
||||||
|
|| with_carddav=0
|
||||||
|
ynh_app_setting_set "$app" with_carddav "$with_carddav"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update or instal CardDAV plugin
|
||||||
|
if [[ $with_carddav -eq 1 ]]; then
|
||||||
|
install_carddav "$DESTDIR" \
|
||||||
|
&& installed_plugins+=" 'carddav'," \
|
||||||
|
|| echo "Unable to install CardDAV plugin" >&2
|
||||||
|
fi
|
||||||
|
|
||||||
# Update Roundcube configuration
|
# Update Roundcube configuration
|
||||||
sudo sed -i "s#^\s*// installed plugins#&\n ${installed_plugins}#" \
|
sudo sed -i "s#^\s*// installed plugins#&\n ${installed_plugins}#" \
|
||||||
"$rc_conf"
|
"$rc_conf"
|
||||||
|
|
||||||
## Install rcmcarddav if baikal is detected
|
|
||||||
#sudo yunohost app list -f baikal --json | grep '"installed": true'
|
|
||||||
#if [ "$?" -eq 0 ]; then
|
|
||||||
# echo "Detected Baikal"
|
|
||||||
#
|
|
||||||
# caldavdomain=$(sudo yunohost app setting baikal domain)
|
|
||||||
# caldavpath=$(sudo yunohost app setting baikal path)
|
|
||||||
# caldavpath=${caldavpath%/}
|
|
||||||
#
|
|
||||||
# sed -i "s@yuno_baikal_domain@$caldavdomain@g" ../conf/rcmcarddav.config.inc.php
|
|
||||||
# sed -i "s@yuno_baikal_path@$caldavpath@g" ../conf/rcmcarddav.config.inc.php
|
|
||||||
# sudo cp ../conf/rcmcarddav.config.inc.php $final_path/plugins/carddav/config.inc.php
|
|
||||||
#
|
|
||||||
# sudo sed -i "s@yuno_enable_carddav@True@g" $final_path/config/main.inc.php
|
|
||||||
#
|
|
||||||
# mysql -u $db_user -p$db_pwd $db_user < ../sources/plugins/carddav/dbinit/mysql-drop.sql
|
|
||||||
# mysql -u $db_user -p$db_pwd $db_user < ../sources/plugins/carddav/dbinit/mysql.sql
|
|
||||||
#else
|
|
||||||
# mysql -u $db_user -p$db_pwd $db_user < ../sources/plugins/carddav/dbinit/mysql-drop.sql
|
|
||||||
# sudo sed -i "s@yuno_enable_carddav@False@g" $final_path/config/main.inc.php
|
|
||||||
#fi
|
|
||||||
|
|
||||||
# Copy and set nginx configuration
|
# Copy and set nginx configuration
|
||||||
nginx_conf="/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
nginx_conf="/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
||||||
sed -i "s@#PATH#@${path:-/}@g" ../conf/nginx.conf
|
sed -i "s@#PATH#@${path:-/}@g" ../conf/nginx.conf
|
||||||
|
|
Loading…
Reference in a new issue