Fix #1544: :local/root in script-adjacent bb.edn should resolve relative to script
This commit is contained in:
parent
39e4ea71e9
commit
d2fece3f80
6 changed files with 30 additions and 17 deletions
|
|
@ -11,6 +11,10 @@ A preview of the next release can be installed from
|
|||
Berlin. Save the date and/or submit your babashka/clojure-related 20 minute talk
|
||||
in the CfP!
|
||||
|
||||
## Unreleased
|
||||
|
||||
- [#1544](https://github.com/babashka/babashka/issues/1544): `:local/root` in script-adjacent bb.edn should resolve relative to script
|
||||
|
||||
## 1.3.178 (2023-04-18)
|
||||
|
||||
- Fix regression with [#1541](https://github.com/babashka/babashka/issues/1541)
|
||||
|
|
|
|||
|
|
@ -1128,30 +1128,30 @@ Use bb run --help to show this help output.
|
|||
config (:config global-opts)
|
||||
merge-deps (:merge-deps global-opts)
|
||||
abs-path #(-> % io/file .getAbsolutePath)
|
||||
bb-edn-file (cond
|
||||
config (when (fs/exists? config) (abs-path config))
|
||||
jar (some-> [jar] cp/new-loader (cp/resource "META-INF/bb.edn") .toString)
|
||||
:else (if (and file (fs/exists? file))
|
||||
config (cond
|
||||
config (when (fs/exists? config) (abs-path config))
|
||||
jar (some-> [jar] cp/new-loader (cp/resource "META-INF/bb.edn") .toString)
|
||||
:else (if (and file (fs/exists? file))
|
||||
;; file relative to bb.edn
|
||||
(let [rel-bb-edn (fs/file (fs/parent file) "bb.edn")]
|
||||
(if (fs/exists? rel-bb-edn)
|
||||
(abs-path rel-bb-edn)
|
||||
(let [rel-bb-edn (fs/file (fs/parent file) "bb.edn")]
|
||||
(if (fs/exists? rel-bb-edn)
|
||||
(abs-path rel-bb-edn)
|
||||
;; fall back to local bb.edn
|
||||
(when (fs/exists? "bb.edn")
|
||||
(abs-path "bb.edn"))))
|
||||
(when (fs/exists? "bb.edn")
|
||||
(abs-path "bb.edn"))))
|
||||
;; default to local bb.edn
|
||||
(when (fs/exists? "bb.edn")
|
||||
(abs-path "bb.edn"))))
|
||||
bb-edn (when (or bb-edn-file merge-deps)
|
||||
(when bb-edn-file (System/setProperty "babashka.config" bb-edn-file))
|
||||
(let [raw-string (when bb-edn-file (slurp bb-edn-file))
|
||||
edn (when bb-edn-file (read-bb-edn raw-string))
|
||||
(when (fs/exists? "bb.edn")
|
||||
(abs-path "bb.edn"))))
|
||||
bb-edn (when (or config merge-deps)
|
||||
(when config (System/setProperty "babashka.config" config))
|
||||
(let [raw-string (when config (slurp config))
|
||||
edn (when config (read-bb-edn raw-string))
|
||||
edn (if merge-deps
|
||||
(deps/merge-deps [edn (read-bb-edn merge-deps)])
|
||||
edn)
|
||||
edn (assoc edn
|
||||
:raw raw-string
|
||||
:file bb-edn-file)
|
||||
:file config)
|
||||
edn (if-let [deps-root (or (:deps-root global-opts)
|
||||
(some-> config fs/parent))]
|
||||
(assoc edn :deps-root deps-root)
|
||||
|
|
|
|||
|
|
@ -1 +1,2 @@
|
|||
{:deps {medley/medley {:mvn/version "1.3.0"}}}
|
||||
{:deps {medley/medley {:mvn/version "1.3.0"}
|
||||
my-local/dep {:local/root "../local-dep"}}}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/env bb
|
||||
|
||||
(require '[local-dep])
|
||||
|
||||
(assert (= :foo local-dep/local-dep-var))
|
||||
|
||||
(ns medley
|
||||
(:require [medley.core :as medley]))
|
||||
|
||||
|
|
|
|||
1
test-resources/local-dep/deps.edn
Normal file
1
test-resources/local-dep/deps.edn
Normal file
|
|
@ -0,0 +1 @@
|
|||
{:paths ["src"]}
|
||||
3
test-resources/local-dep/src/local_dep.clj
Normal file
3
test-resources/local-dep/src/local_dep.clj
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
(ns local-dep)
|
||||
|
||||
(def local-dep-var :foo)
|
||||
Loading…
Reference in a new issue