64 lines
1.7 KiB
Bash
Executable File
64 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
||
# functions.sh next-gen by Fufroma
|
||
|
||
# Init some vars
|
||
. /etc/alternc/local.sh
|
||
|
||
# Init some other vars
|
||
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}
|
||
}
|
||
|
||
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à
|
||
# 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;'
|
||
# fi
|
||
}
|
||
|
||
log_error() {
|
||
local error=$1
|
||
echo "`date` $0 : $1" | tee -a "$DOMAIN_LOG_FILE" >&2
|
||
exit 1
|
||
}
|
||
|