# Misc utilities for ScoDoc install shell scripts to_lower() { echo $1 | tr "[:upper:]" "[:lower:]" } to_upper() { echo $1 | tr "[:lower:]" "[:upper:]" } norm_ans() { x=$(to_upper $1 | tr O Y) echo ${x:0:1} } check_uid_root() { if [ "$UID" != "0" ] then echo "Erreur: le script $1 doit etre lance par root" exit 1 fi } terminate() { echo echo "Erreur: $1" echo exit 1 } # 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)" /etc/init.d/scodoc $1 fi } # --- 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" su -c "createuser -p $POSTGRES_PORT --no-superuser --no-createdb --no-adduser --no-createrole ${POSTGRES_USER}" $POSTGRES_SUPERUSER fi } # XXX inutilise gen_passwd() { PASSWORD_LENGTH="8" ALLOWABLE_ASCII="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@#$%^&*()_+=-?><" SEED=$(head -c4 /dev/urandom | od -t u4 | awk '{ print $2 }') RANDOM=$SEED n=1 password="" while [ "$n" -le "$PASSWORD_LENGTH" ] do password="$password${ALLOWABLE_ASCII:$(($RANDOM%${#ALLOWABLE_ASCII})):1}" n=$((n+1)) done echo $password }