|
787 | 787 | project-edn (assoc :project project-edn) |
788 | 788 | extra-edn (assoc :extra extra-edn)))) |
789 | 789 |
|
790 | | -(defmacro ^:private in-project-dir |
791 | | - "If project deps.edn is not in the current dir, push project directory |
792 | | - into current directory context while creating basis. Local deps use paths |
793 | | - relative to project dir. Use anaphoric 'assumed-project in body." |
794 | | - [project-deps & body] |
795 | | - `(if (and (instance? String ~project-deps) |
796 | | - (not (.equals dir/*the-dir* (.getParentFile (jio/file ~project-deps))))) |
797 | | - (dir/with-dir (.getParentFile (jio/file ~project-deps)) |
798 | | - (let [~'assumed-project (.getName (jio/file ~project-deps))] |
799 | | - ~@body)) |
800 | | - (let [~'assumed-project ~project-deps] |
801 | | - ~@body))) |
802 | | - |
803 | 790 | (defn create-basis |
804 | 791 | "Create a basis from a set of deps sources and a set of aliases. By default, use |
805 | 792 | root, user, and project deps and no argmaps (essentially the same classpath you get by |
|
812 | 799 | subprocesses (tool, resolve-deps, make-classpath-map). |
813 | 800 |
|
814 | 801 | Options: |
| 802 | + :dir - directory root path, defaults to current directory |
815 | 803 | :root - dep source, default = :standard |
816 | 804 | :user - dep source, default = :standard |
817 | | - :project - dep source, default = :standard (\"./deps.edn\") |
| 805 | + :project - dep source, default = :standard (\"deps.edn\") |
818 | 806 | :extra - dep source, default = nil |
819 | 807 | :aliases - coll of aliases, default = nil |
820 | 808 |
|
|
834 | 822 | :libs - lib map, per resolve-deps |
835 | 823 | :classpath - classpath map per make-classpath-map |
836 | 824 | :classpath-roots - vector of paths in classpath order" |
837 | | - [{:keys [root user project extra aliases] :as params}] |
838 | | - (in-project-dir project |
839 | | - (let [project assumed-project ;; use anaphoric for project deps in context of project dir |
840 | | - params (cond-> params (contains? params :project) (assoc :project project)) |
841 | | - |
842 | | - basis-config (cond-> nil |
| 825 | + [{:keys [dir root user project extra aliases] :as params}] |
| 826 | + (dir/with-dir (jio/file (or dir ".")) |
| 827 | + (let [basis-config (cond-> nil |
843 | 828 | (contains? params :root) (assoc :root root) |
844 | 829 | (contains? params :project) (assoc :project project) |
845 | 830 | (contains? params :user) (assoc :user user) |
|
0 commit comments