--- a/scripts/create-neighborhood.py
+++ b/Allura/allura/command/create_neighborhood.py
@@ -1,29 +1,21 @@
-import sys
-
-from ming.orm import ThreadLocalORMSession
+from . import base
from allura import model as M
from allura.lib import plugin
-USAGE='%s <neighborhood_prefix> <neighborhood_admin0>...'
+class CreateNeighborhoodCommand(base.Command):
+ min_args=3
+ max_args=None
+ usage = '<ini file> <neighborhood_shortname> <admin1> [<admin2>...]'
+ summary = 'Create a new neighborhood with the listed admins'
+ parser = base.Command.standard_parser(verbose=True)
-def main():
- assert len(sys.argv) > 2, USAGE
- admins = [
- M.User.by_username(un)
- for un in sys.argv[2:] ]
- prefix = sys.argv[1]
- n = M.Neighborhood(
- name=prefix,
- url_prefix='/' + prefix + '/',
- acl=dict(
- read=[None],
- create=[],
- moderate=[ u._id for u in admins ],
- admin=[ u._id for u in admins ]))
- project_reg = plugin.ProjectRegistrationProvider.get()
- project_reg.register_neighborhood_project(n, admins)
- ThreadLocalORMSession.flush_all()
-
-if __name__ == '__main__':
- main()
+ def command(self):
+ self.basic_setup()
+ admins = [ M.User.by_username(un) for un in self.args[2:] ]
+ shortname = self.args[1]
+ n = M.Neighborhood(
+ name=shortname,
+ url_prefix='/' + shortname + '/')
+ project_reg = plugin.ProjectRegistrationProvider.get()
+ project_reg.register_neighborhood_project(n, admins)