better error reporing on app_create failures

This commit is contained in:
mdipierro
2012-08-24 17:05:18 -05:00
parent 78e1815395
commit c5be7cb2f7
4 changed files with 31 additions and 17 deletions
+23 -8
View File
@@ -18,6 +18,7 @@ from fileutils import up, fix_newlines, abspath, recursive_unlink
from fileutils import read_file, write_file, parse_version
from restricted import RestrictedError
from settings import global_settings
from http import HTTP
if not global_settings.web2py_runtime_gae:
import site
@@ -157,7 +158,7 @@ def app_compile(app, request):
remove_compiled_application(folder)
return tb
def app_create(app, request,force=False,key=None):
def app_create(app, request,force=False,key=None,info=False):
"""
Create a copy of welcome.w2p (scaffolding) app
@@ -169,11 +170,19 @@ def app_create(app, request,force=False,key=None):
the global request object
"""
try:
path = apath(app, request)
os.mkdir(path)
except:
if not force:
path = apath(app, request)
if not os.path.exists(path):
try:
os.mkdir(path)
except:
if info:
return False, traceback.format_exc(sys.exc_info)
else:
return False
elif not force:
if info:
return False, "Application exists"
else:
return False
try:
w2p_unpack('welcome.w2p', path)
@@ -189,10 +198,16 @@ def app_create(app, request,force=False,key=None):
data = data.replace('<your secret key>',
'sha512:'+(key or web2py_uuid()))
write_file(db, data)
return True
if info:
return True, None
else:
return True
except:
rmtree(path)
return False
if info:
return False, traceback.format_exc(sys.exc_info)
else:
return False
def app_install(app, fobj, request, filename, overwrite=None):