Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions rocket_engine/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@
import sys


from django.core.handlers.wsgi import WSGIHandler
from django.core import signals
try:
from django.core.handlers.wsgi import WSGIHandler
from django.core import signals
except ImportError:
import logging
logging.warn('Make sure you have django set in app.yaml as a library')

on_appengine_remote = os.getenv('SERVER_SOFTWARE','')\
.startswith('Google App Engine')
Expand All @@ -12,6 +16,7 @@
os.path.abspath(os.curdir)

PROJECT_DIR = os.path.abspath(os.getcwd())
DEFAULT_PORT = '8000'


def get_appengine_sdk_path():
Expand Down Expand Up @@ -42,7 +47,7 @@ def get_appengine_sdk_path():
sys.exit(1)


def setup_appendine_sdk():
def setup_appengine_sdk():
try:
import dev_appserver
except ImportError:
Expand All @@ -56,7 +61,7 @@ def setup_appendine_sdk():
sys.path.extend(dev_appserver.GOOGLE_SQL_EXTRA_PATHS)


def path_appendine_sdk():
def path_appengine_sdk():

if not os.environ.get('DJANGO_SETTINGS_MODULE'):
os.environ.update({'DJANGO_SETTINGS_MODULE': 'settings'})
Expand Down Expand Up @@ -88,7 +93,7 @@ def path_appendine_sdk():


if not on_appengine_remote:
setup_appendine_sdk()
path_appendine_sdk()
setup_appengine_sdk()
path_appengine_sdk()

wsgi = WSGIHandler()
8 changes: 8 additions & 0 deletions rocket_engine/management/commands/appengine.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@
PROJECT_DIR, APPENGINE_REQUIREMENTS_FILE
)

# requirements file defaults to django root or same as settings dir
# you can override this in your settings file by setting:
if hasattr(settings, 'APPENGINE_REQUIREMENTS_FILE'):
requirements_file = getattr(settings, 'APPENGINE_REQUIREMENTS_FILE')

virtualenv = os.path.join(PROJECT_DIR, APPENGINE_VIRTUALENV)
virtualenv_cache = os.path.join(virtualenv, 'cache')
virtualenv_appengine_libs = os.path.join(virtualenv, 'appengine_libs')
Expand Down Expand Up @@ -64,6 +69,9 @@ def install_requirements(self):
os.path.join(PROJECT_DIR, 'rocket_engine')
)

# this seems to break iin following scenarios
# 1. If you have commented a requirement out in requirements.txt
# 2. If you use a package on github (could be due to slow connection issues)
if os.path.exists(requirements_file):
subprocess.Popen(
shlex.split(
Expand Down
7 changes: 5 additions & 2 deletions rocket_engine/management/commands/runserver.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
from django.core.management.base import BaseCommand
from google.appengine.tools import dev_appserver_main

from ... import PROJECT_DIR
from ... import PROJECT_DIR, DEFAULT_PORT

class Command(BaseCommand):

def run_from_argv(self, argv):
port = ['--port=%s' % DEFAULT_PORT]
if argv:
port = [arg for arg in argv if 'port' in arg]
dev_appserver_main.PrintUsageExit = lambda x: ""
dev_appserver_main.main(['runserver', PROJECT_DIR] + argv[2:] + ['--port=8000'])
dev_appserver_main.main(['runserver', PROJECT_DIR] + argv[2:] + port)