|
@@ -1,63 +0,0 @@
|
|
|
-import os
|
|
|
-import re
|
|
|
-from optparse import OptionParser
|
|
|
-
|
|
|
-from django.core import management
|
|
|
-
|
|
|
-
|
|
|
-def validate_project_name(parser, project_name):
|
|
|
- if project_name[0].isdigit():
|
|
|
- parser.error("project_name cannot start with digit")
|
|
|
-
|
|
|
- if project_name.startswith("-"):
|
|
|
- parser.error("project_name cannot start with '-'")
|
|
|
-
|
|
|
- if re.search("[^0-9a-zA-Z]", project_name):
|
|
|
- parser.error("project_name cannot contain special characters")
|
|
|
-
|
|
|
- # Ensure the given directory name doesn't clash with an existing
|
|
|
- # Python package/module.
|
|
|
- try:
|
|
|
- __import__(project_name)
|
|
|
- except ImportError:
|
|
|
- pass
|
|
|
- else:
|
|
|
- parser.error(
|
|
|
- (
|
|
|
- "'%s' conflicts with the name of an existing "
|
|
|
- "Python module and cannot be used as a project "
|
|
|
- "name. Please try another name."
|
|
|
- )
|
|
|
- % project_name
|
|
|
- )
|
|
|
-
|
|
|
- return project_name
|
|
|
-
|
|
|
-
|
|
|
-def get_misago_project_template():
|
|
|
- misago_path = os.path.dirname(os.path.dirname(__file__))
|
|
|
- return os.path.join(misago_path, "project_template")
|
|
|
-
|
|
|
-
|
|
|
-def start_misago_project():
|
|
|
- parser = OptionParser(usage="usage: %prog project_name [directory]")
|
|
|
- _, args = parser.parse_args()
|
|
|
-
|
|
|
- if len(args) < 1:
|
|
|
- parser.error("project_name must be specified")
|
|
|
-
|
|
|
- directory = None
|
|
|
- if len(args) == 2:
|
|
|
- directory = args[1]
|
|
|
-
|
|
|
- project_name = validate_project_name(parser, args[0])
|
|
|
-
|
|
|
- argv = [
|
|
|
- "misago-start.py",
|
|
|
- "startproject",
|
|
|
- project_name,
|
|
|
- directory,
|
|
|
- "--template=%s" % get_misago_project_template(),
|
|
|
- ]
|
|
|
-
|
|
|
- management.execute_from_command_line(argv)
|