489dabac67fce50ed8ddff764f38815f7577cf44
[infrastructure.git] / scripts / onelab-aliases.sh
1 #!/bin/bash
2
3 # $Id$
4
5 # to be run on the mail server at onelab.eu, to add aliases in that domain
6 # Example:
7 # new-alias.sh francois2.jan@orange-ftgroup.com
8 # -> creates one alias
9 # francois2.jan@onelab.eu -> francois2.jan@orange-ftgroup.com
10
11 COMMAND=$(basename $0)
12
13 SQL="psql -U mail mail"
14
15 function usage () {
16   echo "Usage: $command alias1 [ .. aliasn]"
17   exit 1
18 }
19
20 function create () {
21
22   target=$1; shift
23
24   namepart=$(echo $target | cut -s -d @ -f 1)
25   domainpart=$(echo $target | cut -s -d @ -f 2)
26   if [ -z "$namepart" -o -z "$domainpart" ] ; then
27     echo "WARNING: $target skipped"
28     continue
29   fi
30   aliasname=${namepart}@onelab.eu
31   sqlcommand="insert into alias values ( '${aliasname}', '${target}' )"
32   echo "Sending $sqlcommand"
33   echo "$sqlcommand" | $SQL
34
35 }
36
37 function list_aliases () {
38   echo 'select * from alias;' | $SQL
39 }
40   
41
42 function main () {
43
44   targets="$@" 
45
46   if [[ -z "$targets" ]] ; then
47     list_aliases
48   else
49     for target in "$@" ; do
50       create $target
51     done
52   fi
53 }
54
55 main "$@"