FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Infrastructure

 
 
LinkBack Thread Tools
 
Old 01-11-2010, 12:38 AM
Todd Zullinger
 
Default mailman: Sync setup script from configs/ to module

---
modules/mailman/files/fedora-mailing-list-setup | 63 +++++++++++++++-------
1 files changed, 43 insertions(+), 20 deletions(-)

diff --git a/modules/mailman/files/fedora-mailing-list-setup b/modules/mailman/files/fedora-mailing-list-setup
index bf10b81..134c9e6 100755
--- a/modules/mailman/files/fedora-mailing-list-setup
+++ b/modules/mailman/files/fedora-mailing-list-setup
@@ -19,18 +19,19 @@
"""Create a new mailing list according to Fedora's initial list creation guidelines."""

import sys
-
-sys.path.append('/usr/lib/mailman')
-sys.path.append('/usr/lib/mailman/bin')
-
import pwd
import grp
import os
-import getpass
-import getopt
+import optparse
import sha

-import paths
+try:
+ sys.path.append('/usr/lib/mailman/bin')
+ import paths
+except ImportError:
+ print >> sys.stderr, 'Failed to import mailman paths module.'
+ sys.exit(1)
+
from Mailman import mm_cfg
from Mailman import MailList
from Mailman import Utils
@@ -137,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:
@@ -152,7 +157,10 @@ 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 + '-'):
@@ -164,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)
@@ -188,13 +199,25 @@ def ask_questions(listType):

return listname, admin

-# work out where we are running fedorahosted lists require extra restrictions
-hostname = os.uname()[1]
-if hostname.startswith("hosted"):
- listType = "hosted"
-else:
- listType = "other"
+def main():
+ # Check where we are. Lists on fedorahosted.org have extra restrictions.
+ 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)
-switch_user()
-create_list(listname, '%s@fedoraproject.org' % admin)
+ listname, admin = ask_questions(listType, *args)
+ switch_user()
+ create_list(listname, '%s@fedoraproject.org' % admin)
+
+if __name__ == '__main__':
+ try:
+ main()
+ except KeyboardInterrupt:
+ sys.exit(1)
--
1.6.6

_______________________________________________
infrastructure mailing list
infrastructure@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/infrastructure
 

Thread Tools




All times are GMT. The time now is 03:35 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org