You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.3 KiB
37 lines
1.3 KiB
""" Provide access to external documents. """
|
|
|
|
import os
|
|
|
|
from flask import abort, send_from_directory
|
|
|
|
from asl_articles import app
|
|
|
|
# ---------------------------------------------------------------------
|
|
|
|
@app.route( "/docs/<path:path>" )
|
|
def get_external_doc( path ):
|
|
"""Return an external document."""
|
|
base_dir = app.config.get( "EXTERNAL_DOCS_BASEDIR" )
|
|
if not base_dir:
|
|
abort( 404, "EXTERNAL_DOCS_BASEDIR not configured." )
|
|
fname = os.path.join( base_dir, path )
|
|
if not os.path.isfile( fname ):
|
|
if app.config["_IS_CONTAINER"]:
|
|
fname = os.path.join( os.environ["EXTERNAL_DOCS_BASEDIR"], path )
|
|
abort( 404, "Can't find file: {}".format( fname ) )
|
|
return send_from_directory( base_dir, path )
|
|
|
|
# ---------------------------------------------------------------------
|
|
|
|
@app.route( "/user-files/<path:path>" )
|
|
def get_user_file( path ):
|
|
"""Return a user-defined file."""
|
|
base_dir = app.config.get( "USER_FILES_BASEDIR" )
|
|
if not base_dir:
|
|
abort( 404, "USER_FILES_BASEDIR not configured." )
|
|
fname = os.path.join( base_dir, path )
|
|
if not os.path.isfile( fname ):
|
|
if app.config["_IS_CONTAINER"]:
|
|
fname = os.path.join( os.environ["USER_FILES_BASEDIR"], path )
|
|
abort( 404, "Can't find file: {}".format( fname ) )
|
|
return send_from_directory( base_dir, path )
|
|
|