From 88b6b0e0b652351344f917d4e8b542ed6f0a339e Mon Sep 17 00:00:00 2001 From: Stephen Coady Date: Apr 12 2021 19:14:10 +0000 Subject: 2 bug fixes in the fasjson email aliases script Signed-off-by: Stephen Coady --- diff --git a/roles/fasjson/templates/fasjson-aliases.j2 b/roles/fasjson/templates/fasjson-aliases.j2 index 1ee1356..02de9ef 100644 --- a/roles/fasjson/templates/fasjson-aliases.j2 +++ b/roles/fasjson/templates/fasjson-aliases.j2 @@ -2,6 +2,7 @@ import os import sys import tempfile +import subprocess from fasjson_client import Client, errors @@ -36,19 +37,16 @@ def gen_all_aliases(): for group in groups: groupname = group['groupname'] - # even though there are no admins of groups anymore - # we should probably leave this here and just - # link to the sponsors list - temp.write( - f'{groupname}-administrators: {groupname}-sponsors \n' - ) - sponsor_list = ','.join( sponsor['username'] for sponsor in client.list_group_sponsors( groupname=groupname).result ) - temp.write(f"{groupname}-sponsors: {sponsor_list} \n") + if sponsor_list: + temp.write( + f'{groupname}-administrators: {groupname}-sponsors \n' + ) + temp.write(f"{groupname}-sponsors: {sponsor_list} \n") member_list = ','.join( member['username'] @@ -56,7 +54,9 @@ def gen_all_aliases(): groupname=groupname).result ) - temp.write(f"{groupname}-members: {member_list} \n") + if member_list: + temp.write(f"{groupname}-members: {member_list} \n") + rename(temporary_file.name, aliases_file) except errors.APIError as e: print(f"Something went wrong querying the fasjson API. {e}", file=sys.stderr) @@ -117,8 +117,12 @@ def main(): try: if not args: gen_all_aliases() + # call newaliases script so postfix gets updated + subprocess.check_call(['/usr/bin/newaliases']) elif len(args) == 2 and args[0] == "update": update_user(args[1]) + # call newaliases script so postfix gets updated + subprocess.check_call(['/usr/bin/newaliases']) else: print(f"Usage: {sys.argv[0]} [update ]", file=sys.stderr) raise RuntimeError()