AlternC/src/functions.sh

64 lines
1.7 KiB
Bash
Raw Normal View History

#!/bin/bash
# functions.sh next-gen by Fufroma
# Init some vars
. /etc/alternc/local.sh
# Init some other vars
2011-01-29 15:12:26 +00:00
MYSQL_DO="/usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -Bs -e "
mysql_query() { /usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -Bs -e "$@" ; }
DOMAIN_LOG_FILE="/var/log/alternc/update_domains.log"
VHOST_FILE="$VHOST_DIR/vhosts_all.conf"
# Some usefull miscellaneous shell functions
print_domain_letter() {
# local domain="$1"
#
# local letter=`echo "$domain" | awk '{z=split($NF, a, ".") ; print substr(a[z-1], 1, 1)}'`
# if [ -z "$letter" ]; then
# letter="_"
# fi
# echo $letter
local domain=$1
domain=${domain/.${domain/*./}/}
domain=${domain/*./}
domain=${domain:0:1}
# Bash match un é quand on lui donne [a-z]. Etrange
if [[ "$domain" =~ [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9]{1} ]]; then
echo $domain
else
echo '_'
fi
}
print_user_letter() {
local user="$1"
echo ${user:0:1}
}
2011-05-17 16:36:01 +00:00
get_uid_by_name() {
mysql_query 'SELECT uid FROM membres WHERE login="'"$1"'" LIMIT 1;'
}
# imprime le nom d'usager associé au domaine
get_account_by_domain() {
# les admintools ne sont peut-être pas là
2011-01-29 15:12:26 +00:00
# if [ -x "/usr/bin/get_account_by_domain" ]
# then
# # only first field, only first line
# /usr/bin/get_account_by_domain "$1"|head -1|awk '{ print $1;}'
# else
# implantons localement ce que nous avons besoin, puisque admintools
# n'est pas là
mysql_query 'SELECT a.login FROM membres a, sub_domaines b WHERE a.uid = b.compte AND \
CONCAT(IF(sub="", "", CONCAT(sub, ".")), domaine) = "'"$1"'" LIMIT 1;'
2011-01-29 15:12:26 +00:00
# fi
}
log_error() {
local error=$1
echo "`date` $0 : $1" | tee -a "$DOMAIN_LOG_FILE" >&2
exit 1
}