aboutsummaryrefslogtreecommitdiff
path: root/scripts/_common.sh
diff options
context:
space:
mode:
authoranmol26s <github@datamol.org>2018-06-21 08:18:02 +0530
committeranmol26s <github@datamol.org>2018-06-21 08:18:02 +0530
commit9c37e95309833ae19048ee1e53b8c4070f3e7f8d (patch)
treee6bf8a8a93ff657baba9203bf52206469c2b076f /scripts/_common.sh
parentcd1f81fb5d25783329e549ee966a0a545001c63c (diff)
downloadmastodon_ynh-9c37e95309833ae19048ee1e53b8c4070f3e7f8d.tar.gz
mastodon_ynh-9c37e95309833ae19048ee1e53b8c4070f3e7f8d.tar.bz2
mastodon_ynh-9c37e95309833ae19048ee1e53b8c4070f3e7f8d.zip
Improved the app
Diffstat (limited to 'scripts/_common.sh')
-rw-r--r--scripts/_common.sh60
1 files changed, 58 insertions, 2 deletions
diff --git a/scripts/_common.sh b/scripts/_common.sh
index df631ad..7def11e 100644
--- a/scripts/_common.sh
+++ b/scripts/_common.sh
@@ -107,7 +107,6 @@ ynh_psql_execute_file_as_root() {
# | arg: pwd - Password of the database. If not given, a password will be generated
ynh_psql_setup_db () {
db_user="$1"
- app="$1"
db_name="$2"
new_db_pwd=$(ynh_string_random) # Generate a random password
# If $3 is not given, use new_db_pwd instead for db_pwd.
@@ -162,7 +161,7 @@ ynh_psql_dump_db() {
ynh_psql_create_user() {
user="$1"
pwd="$2"
- sudo --login --user=postgres psql -c"CREATE USER $user WITH PASSWORD '$pwd' CREATEDB;" postgres
+ sudo --login --user=postgres psql -c"CREATE USER $user WITH PASSWORD '$pwd'" postgres
}
# Drop a user
@@ -173,3 +172,60 @@ ynh_psql_drop_user() {
user="$1"
sudo --login --user=postgres dropuser "$user"
}
+
+# Send an email to inform the administrator
+#
+# usage: ynh_send_readme_to_admin app_message [recipients]
+# | arg: app_message - The message to send to the administrator.
+# | arg: recipients - The recipients of this email. Use spaces to separate multiples recipients. - default: root
+# example: "root admin@domain"
+# If you give the name of a YunoHost user, ynh_send_readme_to_admin will find its email adress for you
+# example: "root admin@domain user1 user2"
+ynh_send_readme_to_admin() {
+ local app_message="${1:-...No specific information...}"
+ local recipients="${2:-root}"
+
+ # Retrieve the email of users
+ find_mails () {
+ local list_mails="$1"
+ local mail
+ local recipients=" "
+ # Read each mail in argument
+ for mail in $list_mails
+ do
+ # Keep root or a real email address as it is
+ if [ "$mail" = "root" ] || echo "$mail" | grep --quiet "@"
+ then
+ recipients="$recipients $mail"
+ else
+ # But replace an user name without a domain after by its email
+ if mail=$(ynh_user_get_info "$mail" "mail" 2> /dev/null)
+ then
+ recipients="$recipients $mail"
+ fi
+ fi
+ done
+ echo "$recipients"
+ }
+ recipients=$(find_mails "$recipients")
+
+ local mail_subject="☁️🆈🅽🅷☁️: \`$app\` was just installed!"
+
+ local mail_message="This is an automated message from your beloved YunoHost server.
+Specific information for the application $app.
+$app_message
+---
+Automatic diagnosis data from YunoHost
+$(yunohost tools diagnosis | grep -B 100 "services:" | sed '/services:/d')"
+
+ # Define binary to use for mail command
+ if [ -e /usr/bin/bsd-mailx ]
+ then
+ local mail_bin=/usr/bin/bsd-mailx
+ else
+ local mail_bin=/usr/bin/mail.mailutils
+ fi
+
+ # Send the email to the recipients
+ echo "$mail_message" | $mail_bin -a "Content-Type: text/plain; charset=UTF-8" -s "$mail_subject" "$recipients"
+}