Commit 083ee8e7 authored by Dom Sekotill's avatar Dom Sekotill
Browse files

'setup install' installs an entry point for management commands

parent 573348e9
Loading
Loading
Loading
Loading

kodo_sso/management.py

0 → 100644
+38 −0
Original line number Diff line number Diff line
import os
import sys
import logging
from django.core import management


class ManagementUtility(management.ManagementUtility):

	def fetch_command(self, subcommand):
		from django.core.management.commands.runserver import Command
		from django.conf import settings

		class RunserverCommand(Command):
			def run(self, **options):
				if not hasattr(settings, 'SITE_URL'):
					settings.SITE_URL = 'http://{0}:{1}'.format(
						self.addr or 'localhost',
						self.port
					)
				return super(RunserverCommand, self).run(**options)

		if subcommand == 'runserver':
			klass = RunserverCommand()
		else:
			klass = super(ManagementUtility, self).fetch_command(
					self, subcommand)
		return klass


def main():
	if not os.environ.get('DJANGO_AUTO_COMPLETE'):
		log_level = os.environ.get('LOGGING_LEVEL', 'INFO').upper()
		logging.basicConfig(level=getattr(logging, log_level))
	os.environ.setdefault(
		"DJANGO_SETTINGS_MODULE",
		"kodo_sso.settings.production"
	)
	ManagementUtility(sys.argv).execute()
+2 −32
Original line number Diff line number Diff line
#!/usr/bin/env python
import os
import sys
import logging

from django.core import management


class ManagementUtility(management.ManagementUtility):

	def fetch_command(self, subcommand):
		from django.core.management.commands.runserver import Command
		from django.conf import settings

		class RunserverCommand(Command):
			def run(self, **options):
				if not hasattr(settings, 'SITE_URL'):
					settings.SITE_URL = 'http://{0}:{1}'.format(
						self.addr or 'localhost',
						self.port
					)
				return super(RunserverCommand, self).run(**options)

		if subcommand == 'runserver':
			klass = RunserverCommand()
		else:
			klass = super(ManagementUtility, self).fetch_command(
					self, subcommand)
		return klass

from kodo_sso import management

if __name__ == "__main__":
	os.environ.setdefault(
		"DJANGO_SETTINGS_MODULE",
		"kodo_sso.settings.development"
	)
	if not os.environ.get('DJANGO_AUTO_COMPLETE'):
		log_level = os.environ.get('LOGGING_LEVEL', 'INFO').upper()
		logging.basicConfig(level=getattr(logging, log_level))
	ManagementUtility(sys.argv).execute()
	management.main()
+4 −0
Original line number Diff line number Diff line
@@ -19,6 +19,10 @@ setup(
	},
	data_files = static_files(join('share', kodo_sso.__name__, 'static')),

	entry_points = {
		'console_scripts': ['kodo-sso=kodo_sso.management:main'],
	},

	install_requires = [
		'Django==1.9',
		'beautifulsoup4~=4.4',