51 lines
1.8 KiB
Python
Executable file
51 lines
1.8 KiB
Python
Executable file
#!/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)
|