misago-start-devproject.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env python
  2. """
  3. Creates a dev project for local development
  4. """
  5. import os
  6. import sys
  7. BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  8. def main():
  9. project_name = 'devproject'
  10. # Allow for overriding project name
  11. if len(sys.argv) > 1:
  12. project_name = sys.argv[1]
  13. else:
  14. sys.argv.append(project_name)
  15. settings_file = os.path.join(BASE_DIR, project_name, project_name, 'settings.py')
  16. # Avoid recreating if already present
  17. if os.path.exists(settings_file):
  18. return
  19. from misago.core import setup
  20. setup.start_misago_project()
  21. fill_in_settings(settings_file)
  22. def fill_in_settings(f):
  23. with open(f, 'r') as fd:
  24. s = fd.read()
  25. # Postgres
  26. s = s.replace("'NAME': '',", "'NAME': os.environ.get('POSTGRES_DB'),")
  27. s = s.replace("'USER': '',", "'USER': os.environ.get('POSTGRES_USER'),")
  28. s = s.replace("'PASSWORD': '',", "'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),")
  29. s = s.replace("'HOST': 'localhost',", "'HOST': os.environ.get('POSTGRES_HOST'),")
  30. # Specify console backend for email
  31. s += "\nEMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'\n"
  32. # Empty the contents of STATICFILES_DIRS (STATICFILES_DIRS = [])
  33. pos = s.find('STATICFILES_DIRS')
  34. s = s[:s.find('[', pos) + 1] + s[s.find(']', pos):]
  35. # Remote theme dir from template dirs
  36. pos = s.find("'DIRS': [")
  37. s = s[:s.find('[', pos) + 1] + s[s.find(']', pos):]
  38. with open(f, 'w') as fd:
  39. fd.write(s)
  40. if __name__ == '__main__':
  41. sys.path.append(BASE_DIR)
  42. main()