module Hack.Contrib.Static (static) where import Hack import Hack.Utils import Hack.Contrib.File (file) import MPSUTF8 import Prelude hiding ((.), (^), (>), (+)) import Data.Maybe import List (find, isPrefixOf) static :: Maybe String -> [String] -> MiddleWare static root urls app = \env -> do let my_urls = if urls.null then ["/favicon.ico"] else urls let path = env.path_info .url2unicode let can_serve = my_urls.find ( `isPrefixOf` path ) .isJust if can_serve then file root app env else app env