diff options
Diffstat (limited to 'src/lib/Bcfg2/manage.py')
-rwxr-xr-x | src/lib/Bcfg2/manage.py | 33 |
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() |