DocScoDoc/config/utils.sh

78 lines
1.7 KiB
Bash
Raw Normal View History

2020-12-19 19:22:22 +01:00
#!/bin/bash
2020-09-26 16:19:37 +02:00
# Misc utilities for ScoDoc install shell scripts
to_lower() {
2020-12-19 19:22:22 +01:00
echo "$1" | tr "[:upper:]" "[:lower:]"
2020-09-26 16:19:37 +02:00
}
to_upper() {
2020-12-19 19:22:22 +01:00
echo "$1" | tr "[:lower:]" "[:upper:]"
2020-09-26 16:19:37 +02:00
}
norm_ans() {
2020-12-19 19:22:22 +01:00
x=$(to_upper "$1" | tr O Y)
echo "${x:0:1}"
2020-09-26 16:19:37 +02:00
}
check_uid_root() {
if [ "$UID" != "0" ]
then
echo "Erreur: le script $1 doit etre lance par root"
exit 1
fi
}
terminate() {
2020-12-21 18:15:01 +01:00
status=${2:-1} # default: exit 1
2020-09-26 16:19:37 +02:00
echo
echo "Erreur: $1"
echo
2020-12-21 18:15:01 +01:00
exit $status
2020-09-26 16:19:37 +02:00
}
2020-12-05 17:29:26 +01:00
# Start/stop scodoc, using sysv or systemd
scodocctl() {
if [ "$1" = "start" ]; then
echo "Starting ScoDoc..."
elif [ "$1" = "stop" ]; then
echo "Stopping ScoDoc"
else
echo "Error: invalid argument for scodocctl"
exit 1
fi
if [ -e /etc/systemd/system/scodoc.service ]
then
systemctl $1 scodoc
else
echo "(using legacy SystemV)"
2020-12-19 19:22:22 +01:00
/etc/init.d/scodoc "$1"
2020-12-05 17:29:26 +01:00
fi
}
2020-09-26 16:19:37 +02:00
# --- Ensure postgres user www-data exists
init_postgres_user() { # run as root
if [ -z $(echo "select usename from pg_user;" | su -c "$PSQL -d template1 -p $POSTGRES_PORT" $POSTGRES_SUPERUSER | grep $POSTGRES_USER) ]
then
# add database user
echo "Creating postgresql user $POSTGRES_USER"
2020-12-19 19:22:22 +01:00
su -c "createuser -p $POSTGRES_PORT --no-superuser --no-createdb --no-adduser --no-createrole ${POSTGRES_USER}" "$POSTGRES_SUPERUSER"
2020-09-26 16:19:37 +02:00
fi
}
# XXX inutilise
gen_passwd() {
PASSWORD_LENGTH="8"
2020-12-05 17:29:26 +01:00
ALLOWABLE_ASCII="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@#$%^&*()_+=-?><"
2020-09-26 16:19:37 +02:00
SEED=$(head -c4 /dev/urandom | od -t u4 | awk '{ print $2 }')
RANDOM=$SEED
n=1
password=""
while [ "$n" -le "$PASSWORD_LENGTH" ]
do
2020-12-19 19:22:22 +01:00
password="$password${ALLOWABLE_ASCII:$((RANDOM%${#ALLOWABLE_ASCII})):1}"
n=$((n+1))
2020-09-26 16:19:37 +02:00
done
2020-12-19 19:22:22 +01:00
echo "$password"
2020-09-26 16:19:37 +02:00
}