Source code for tic.development.appengine.server

APPENGINE_PATH = '/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/'
APPENGINE_LIB_PATH = APPENGINE_PATH + 'lib/'
APPENGINE_LIBS = [
    APPENGINE_LIB_PATH + 'antlr3/',
    APPENGINE_LIB_PATH + 'cacerts/',
    APPENGINE_LIB_PATH + 'ipaddr/',
    APPENGINE_LIB_PATH + 'graphy/',
    APPENGINE_LIB_PATH + 'ipaddr/',
    APPENGINE_LIB_PATH + 'protorpc/',
    APPENGINE_LIB_PATH + 'simplejson/',
    APPENGINE_LIB_PATH + 'webapp2/',
    APPENGINE_LIB_PATH + 'webob/',
    APPENGINE_LIB_PATH + 'yaml/lib/',
]

import sys
sys.path[1:1] = APPENGINE_LIBS

from time import sleep
import os
from threading import Thread
from tic.development.admin.api import IAdminCommandProvider
from tic.core import Component, implements, ExtensionPoint
from tic.development.tools.directory_watcher import DirectoryWatcher
from tic.development.tools.api import IRunServerTask
from tic import loader
from symbol import except_clause
import logging



[docs]class ServerCommand(Component): implements(IAdminCommandProvider) pre_tasks = ExtensionPoint(IRunServerTask)
[docs] def get_admin_commands(self): """ Returns a list of commands to execute @see tic.admin.api.IAdminCommandProvider """ #(command, args, help, complete, execute) return ( ("runserver", None, "runs the server", None, self._runserver), )
def _runserver(self): import sys from google.appengine.tools import dev_appserver_main from google.appengine.tools import dev_appserver_import_hook print dev_appserver_import_hook.FakeFile.NOT_ALLOWED_DIRS root = '/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/' sys.path.append(root) sys.path.append(root + "lib/antlr3/") sys.path.append(root + "lib/cacerts/") sys.path.append(root + "lib/ipaddr/") sys.path.append(root + "lib/graphy/") sys.path.append(root + "lib/ipaddr/") sys.path.append(root + "lib/protorpc/") sys.path.append(root + "lib/simplejson/") sys.path.append(root + "lib/webapp2/") sys.path.append(root + "lib/webob/") sys.path.append(root + "lib/yaml/lib/") # sys.path.append(root + "lib/whoosh/") from google.appengine.dist import use_library use_library('django', '1.2') try: for task in self.pre_tasks: task.run() except Exception, e: logging.error(e) sys.exit(1) progname = sys.argv[0] args = ['--enable_sendmail'] # hack __main__ so --help in dev_appserver_main works. sys.modules['__main__'] = dev_appserver_main sys.exit(dev_appserver_main.main([progname] + args + [os.getcwdu()]))
[docs]class StartWatchingForDirectoryChangesTask(Component): implements(IRunServerTask)
[docs] def run(self): '''run ''' directory_watcher = DirectoryWatcher(self.compmgr) directory_watcher.watch(loader.root_path())