Update plugin_staging to actually stage instead of symlink, since it no longer needs to be quite as fast (on startup). This will allow us to drop unnecessary trust rules from uwsgi static.

This commit is contained in:
Dannon Baker
2019-03-14 13:18:43 -04:00
parent 99082ff486
commit d72643fc2a
+7 -5
View File
@@ -7,7 +7,7 @@ import shutil
GXY_ROOT = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir))
def link_up_static(f):
def stage_static(f):
src = os.path.join(GXY_ROOT, 'config/plugins', f)
dest = os.path.join(GXY_ROOT, 'static/plugins', f)
dest_parent = os.path.abspath(os.path.join(dest, os.pardir))
@@ -18,12 +18,14 @@ def link_up_static(f):
else:
shutil.rmtree(dest)
elif not os.path.exists(dest_parent):
# Create parent dir structure to symlink directly to static.
os.makedirs(dest_parent)
try:
os.symlink(src, dest)
if os.path.isdir(src):
shutil.copytree(src, dest)
else:
shutil.copy(src, dest)
except Exception:
print("Error symlinking '%s' to '%s'" % (src, dest))
print("Error copying '%s' to '%s'" % (src, dest))
raise
@@ -31,4 +33,4 @@ if __name__ == "__main__":
# This is not awesome, but it's temporary, and it supports two-tier plugin static.
for f in glob.glob(os.path.join(GXY_ROOT, 'config/plugins/*/*/static')) + glob.glob(os.path.join(GXY_ROOT, 'config/plugins/*/*/*/static')):
f = os.path.relpath(f, os.path.join(GXY_ROOT, 'config/plugins'))
link_up_static(f)
stage_static(f)