summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/manage.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/manage.py')
-rwxr-xr-xsrc/lib/Bcfg2/manage.py33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/lib/Bcfg2/manage.py b/src/lib/Bcfg2/manage.py
index 3e4eedc9f..9675a3db1 100755
--- a/src/lib/Bcfg2/manage.py
+++ b/src/lib/Bcfg2/manage.py
@@ -1,14 +1,31 @@
#!/usr/bin/env python
-from django.core.management import execute_manager
-import imp
+""" Wrapper for the django manage.py with the Bcfg2 Opitons parsing. """
+
+import sys
+import django
+import Bcfg2.Options
+import Bcfg2.DBSettings
+
try:
- imp.find_module('settings') # Assumed to be in the same directory.
+ import Bcfg2.Server.models
except ImportError:
- import sys
- sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n" % __file__)
- sys.exit(1)
+ pass
+
+
+def main():
+ parser = Bcfg2.Options.get_parser()
+ parser.add_options([
+ Bcfg2.Options.PositionalArgument('django_command', nargs='*')])
+ parser.parse()
+
+ if django.VERSION[0] == 1 and django.VERSION[1] >= 6:
+ from django.core.management import execute_from_command_line
+ execute_from_command_line(
+ sys.argv[:1] + Bcfg2.Options.setup.django_command)
+ else:
+ from django.core.management import execute_manager
+ execute_manager(Bcfg2.DBSettings.settings)
-import settings
if __name__ == "__main__":
- execute_manager(settings)
+ main()