added missing files
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
import os
|
||||
import glob
|
||||
import zipfile
|
||||
import urllib
|
||||
import tempfile
|
||||
import shutil
|
||||
|
||||
def copytree(src, dst):
|
||||
names = os.listdir(src)
|
||||
ignored_names = set()
|
||||
errors = []
|
||||
if not os.path.exists(dst):
|
||||
os.makedirs(dst)
|
||||
for name in names:
|
||||
srcname = os.path.join(src, name)
|
||||
dstname = os.path.join(dst, name)
|
||||
if os.path.isdir(srcname):
|
||||
copytree(srcname, dstname)
|
||||
else:
|
||||
shutil.copy2(srcname, dstname)
|
||||
|
||||
class W2PInstance(object):
|
||||
|
||||
SOURCES = {'stable':'http://web2py.com/examples/static/web2py_src.zip',
|
||||
'nightly':'http://web2py.com/examples/static/nightly/web2py_src.zip',
|
||||
'trunk':'https://github.com/web2py/web2py/archive/master.zip'}
|
||||
|
||||
def __init__(self,path):
|
||||
self.path = path
|
||||
|
||||
def warn(self,message="system going down soon"):
|
||||
apps = glob.glob(os.path.join(self.path,'applications','*'))
|
||||
for app in apps:
|
||||
if os.path.isdir(app):
|
||||
open(os.path.join(app,'notifications.txt'),'w').write(message)
|
||||
|
||||
def install(self,source='stable'):
|
||||
if not os.path.exists(self.path):
|
||||
os.mkdir(self.path)
|
||||
tmpdir = tempfile.mkdtemp()
|
||||
link = self.SOURCES[source]
|
||||
srcfile = os.path.join(tmpdir,'web2py_src.zip')
|
||||
print 'downloading...'
|
||||
open(srcfile,'wb').write(urllib.urlopen(link).read())
|
||||
print 'extracing...'
|
||||
zipfile.ZipFile(srcfile,'r').extractall(tmpdir)
|
||||
print 'copying...'
|
||||
copytree(os.path.join(tmpdir,'web2py'),self.path)
|
||||
|
||||
def upgrade(self,source='stable'):
|
||||
self.install(source)
|
||||
|
||||
def upgrade_tmp(self,source,common=False):
|
||||
tmpdir = tempfile.mkdtemp()
|
||||
link = self.SOURCES[source]
|
||||
srcfile = os.path.join(tmpdir,'web2py_src.zip')
|
||||
print 'copying production...'
|
||||
copytree(self.path,os.path.join(tmpdir,'web2py'))
|
||||
tmpdir_web2py = os.path.join(tmpdir,'web2py')
|
||||
tmp_web2py = W2PInstance(tempdir_web2py)
|
||||
tmp_web2py.clear_sessions()
|
||||
tmp_web2py.clear_cache()
|
||||
tmp_web2py.clear_error()
|
||||
print 'downloading...'
|
||||
open(srcfile,'wb').write(urllib.urlopen(link).read())
|
||||
print 'extracing...'
|
||||
zipfile.ZipFile(srcfile,'r').extractall(tmpdir)
|
||||
print 'running tests...'
|
||||
try:
|
||||
olddir = os.getcwd()
|
||||
os.chdir(tempdir_web2py)
|
||||
ret = os.system("PYTHONPATH=. python -m unittest -v gluon.tests")
|
||||
# eventually start web2py and run functional tests
|
||||
finally:
|
||||
os.chrid(olddir)
|
||||
if ret:
|
||||
sys.exit(ret and 1)
|
||||
copytree(os.path.join(tmpdir,'web2py'),self.path)
|
||||
|
||||
def clear_sessions(self):
|
||||
files = glob.glob(os.path.join(self.path,'applications','*','sessions','*'))
|
||||
for file in files:
|
||||
try:
|
||||
os.unlink(file)
|
||||
except:
|
||||
pass
|
||||
|
||||
def clear_cache(self):
|
||||
files = glob.glob(os.path.join(self.path,'applications','*','cache','*'))
|
||||
for file in files:
|
||||
try:
|
||||
os.unlink(file)
|
||||
except:
|
||||
pass
|
||||
|
||||
def clear_errors(self):
|
||||
files = glob.glob(os.path.join(self.path,'applications','*','errors','*'))
|
||||
for file in files:
|
||||
try:
|
||||
os.unlink(file)
|
||||
except:
|
||||
pass
|
||||
|
||||
web2py = W2PInstance('/Users/massimodipierro/Downloads/web2py')
|
||||
#web2py.install()
|
||||
web2py.clear_sessions()
|
||||
|
||||
"""
|
||||
{{
|
||||
import os
|
||||
_notifications = os.path.join(request.folder,'notifications.txt')
|
||||
if os.path.exixts(_notifications):
|
||||
response.flash = response.flash or open(_notifications).read()
|
||||
pass
|
||||
}}
|
||||
"""
|
||||
Reference in New Issue
Block a user