diff --git a/src/ludus/loader.clj b/src/ludus/loader.clj index 12ccc17..f65d055 100644 --- a/src/ludus/loader.clj +++ b/src/ludus/loader.clj @@ -1,12 +1,16 @@ (ns ludus.loader - (:require [babashka.fs :as fs])) + (:require [babashka.fs :as fs])) (defn cwd [] (fs/cwd)) (defn load-import - ([file] (-> file (fs/canonicalize) (fs/file) (slurp))) - ([file from] - (load-import - (fs/path - (fs/parent (fs/canonicalize from)) - (fs/path file))))) + ([file] + (let [path (-> file (fs/canonicalize) (fs/file))] + (try (slurp path) + (catch java.io.FileNotFoundException _ + (throw (ex-info (str "File " path " not found") {:path path ::error true})))))) + ([file from] + (load-import + (fs/path + (fs/parent (fs/canonicalize from)) + (fs/path file)))))