3 # Copyright 2007 Google Inc.
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 """Convenience wrapper for starting an appengine tool."""
23 if not hasattr(sys
, 'version_info'):
24 sys
.stderr
.write('Very old versions of Python are not supported. Please '
25 'use version 2.5 or greater.\n')
27 version_tuple
= tuple(sys
.version_info
[:2])
28 if version_tuple
< (2, 4):
29 sys
.stderr
.write('Error: Python %d.%d is not supported. Please use '
30 'version 2.5 or greater.\n' % version_tuple
)
32 if version_tuple
== (2, 4):
33 sys
.stderr
.write('Warning: Python 2.4 is not supported; this program may '
34 'break. Please use version 2.5 or greater.\n')
36 DIR_PATH
= os
.path
.abspath(os
.path
.dirname(os
.path
.realpath(__file__
)))
37 SCRIPT_DIR
= os
.path
.join(DIR_PATH
, 'google', 'appengine', 'tools')
41 os
.path
.join(DIR_PATH
, 'lib', 'antlr3'),
42 os
.path
.join(DIR_PATH
, 'lib', 'django'),
43 os
.path
.join(DIR_PATH
, 'lib', 'webob'),
44 os
.path
.join(DIR_PATH
, 'lib', 'yaml', 'lib'),
48 "dev_appserver.py" : "dev_appserver_main.py"
51 def run_file(file_path
, globals_
, script_dir
=SCRIPT_DIR
):
52 """Execute the file at the specified path with the passed-in globals."""
53 sys
.path
= EXTRA_PATHS
+ sys
.path
54 script_name
= os
.path
.basename(file_path
)
55 script_name
= SCRIPT_EXCEPTIONS
.get(script_name
, script_name
)
56 script_path
= os
.path
.join(script_dir
, script_name
)
57 execfile(script_path
, globals_
)
59 if __name__
== '__main__':
60 run_file(__file__
, globals())