#!/bin/bash /usr/scripts/python.sh
# -*- coding: utf8 -*-
# Script utilisé par l'intranet et autres pour ecrire le .forward dans le home
# Executé avec un sudo
# detraz@crans.org

import argparse
import os

def getforward(user):
    """Bonjour, j'aurais pu être une docstring"""

    homedir = os.path.expanduser("~%s" % (user,))
    if homedir == "~%s" % (user,):
        raise IOError("Le home de %r n'existe probablement pas." % (user,))

    fwd = os.path.join(homedir, ".forward")

    try:
        with open(fwd, 'r') as forwardfile:
            mailredirect = forwardfile.readline().strip()
    except IOError:
        mailredirect = ""
    print mailredirect

def writeforward(user, txt):
    """Bonjour, j'aurais pu être une docstring"""

    homedir = os.path.expanduser("~%s" % (user,))
    if homedir == "~%s" % (user,):
        raise IOError("Le home de %r n'existe probablement pas." % (user,))

    fwd = os.path.join(homedir, ".forward")

    with open(fwd, 'w') as forwardfile:
        forwardfile.write(txt)

if __name__=="__main__":
    parser = argparse.ArgumentParser(description="Script qui, éventuellement appelé avec sudo, permet d'écrire dans le .forward de quelqu'un.", add_help=False)
    meh = parser.add_mutually_exclusive_group()
    parser.add_argument("-h", "--help", help="Affiche cette aide et quitte.", action="store_true")
    parser.add_argument("-m", "--mail", help="Mail d'utilisateur", type=str, action="store")
    parser.add_argument("-n", "--name", help="Nom d'utilisateur", type=str, action="store")
    meh.add_argument("-r", "--read", help="Lire", action="store_true")
    meh.add_argument("-w", "--write", help="Écrire", action="store_true")

    args = parser.parse_args()
    if args.read:
        getforward(args.name)
    elif args.write:
        writeforward(args.name, args.mail)
