This allows the script to be used non-interactively.
---
configs/mailman/fedora-mailing-list-setup | 30 +++++++++++++++++++++-------
1 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/configs/mailman/fedora-mailing-list-setup
b/configs/mailman/fedora-mailing-list-setup
index 471e77d..6e9385b 100755
--- a/configs/mailman/fedora-mailing-list-setup
+++ b/configs/mailman/fedora-mailing-list-setup
@@ -22,8 +22,7 @@ import sys
import pwd
import grp
import os
-import getpass
-import getopt
+import optparse
import sha
try:
@@ -139,9 +138,13 @@ def switch_user():
os.setgid(mailman_gid)
os.setuid(mailman_uid)
-def ask_questions(listType):
+def ask_questions(listType, *args):
+ args = list(args)
if listType == "hosted":
- project = raw_input('Project name: ').strip().lower()
+ if len(args) > 0:
+ project = args.pop(0)
+ else:
+ project = raw_input('Project name: ').strip().lower()
found = False
for vcs in ['cvs', 'git', 'hg', 'mtn',
'svn']:
try:
@@ -153,8 +156,11 @@ def ask_questions(listType):
if not found:
usage(1, 'Can\'t find a project named "%s"!' %
project)
-
- listname = raw_input('List name: ').strip().lower()
+
+ if len(args) > 0:
+ listname = args[0]
+ else:
+ listname = raw_input('List name: ').strip().lower()
if listType == "hosted":
if listname != project and not listname.startswith(project + '-'):
@@ -166,7 +172,10 @@ def ask_questions(listType):
if Utils.list_exists(listname):
usage(1, 'List already exists: "%s"!' % listname)
- admin = raw_input('Admin username: ').strip().lower()
+ if len(args) > 1:
+ admin = args[1]
+ else:
+ admin = raw_input('Admin username: ').strip().lower()
try:
pw = pwd.getpwnam(admin)
@@ -195,10 +204,15 @@ def main():
hostname = os.uname()[1]
if hostname.startswith("hosted"):
listType = "hosted"
+ usage = '%prog [project [listname [listadmin]]]'
else:
listType = "other"
+ usage = '%prog [listname [listadmin]]'
+
+ parser = optparse.OptionParser(usage=usage)
+ opts, args = parser.parse_args()
- listname, admin = ask_questions(listType)
+ listname, admin = ask_questions(listType, *args)
switch_user()
create_list(listname, '%s(a)fedoraproject.org' % admin)
--
1.6.6