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