File tree Expand file tree Collapse file tree 3 files changed +24
-6
lines changed
test/babashka/bbin/scripts Expand file tree Collapse file tree 3 files changed +24
-6
lines changed Original file line number Diff line number Diff line change @@ -158,8 +158,13 @@ WARNING: (We won't make any changes without asking you first.)
158158 (->> (reduce #(str/replace %1 %2 " " ) lib (keys providers))
159159 symbol))
160160
161+ (defn- get-lib-provider [lib]
162+ (if-let [provider (some #(when (re-seq (key %) (str lib)) %) providers)]
163+ provider
164+ (throw (ex-info " Unable to find an appropriate provider" {:lib lib}))))
165+
161166(defn git-http-url [lib]
162- (let [provider (some #( when ( re-seq ( key %) ( str lib)) %) providers )
167+ (let [provider (get- lib-provider lib )
163168 s (clean-lib-str (str lib))]
164169 (case (val provider)
165170 :github (str " https://github.com/" s " .git" )
@@ -171,7 +176,7 @@ WARNING: (We won't make any changes without asking you first.)
171176 :sourcehut (str " https://git.sr.ht/~" s))))
172177
173178(defn git-ssh-url [lib]
174- (let [provider (some #( when ( re-seq ( key %) ( str lib)) %) providers )
179+ (let [provider (get- lib-provider lib )
175180 s (clean-lib-str (str lib))]
176181 (case (val provider)
177182 :github (str " git@github.com:" s " .git" )
@@ -187,7 +192,7 @@ WARNING: (We won't make any changes without asking you first.)
187192 (ensure-git-dir client url)
188193 url)
189194 (catch Exception e
190- (if (re-seq #"^Unable to clone " (ex-message e))
195+ (if (re-seq #"^Unable to " (ex-message e))
191196 (let [url (git-ssh-url lib)]
192197 (ensure-git-dir client url)
193198 url)
Original file line number Diff line number Diff line change 5151 (->> (reduce #(str/replace %1 %2 " " ) lib (keys providers))
5252 symbol))
5353
54+ (defn- get-lib-provider [lib]
55+ (if-let [provider (some #(when (re-seq (key %) (str lib)) %) providers)]
56+ provider
57+ (throw (ex-info " Unable to find an appropriate provider" {:lib lib}))))
58+
5459(defn git-http-url [lib]
55- (let [provider (some #( when ( re-seq ( key %) ( str lib)) %) providers )
60+ (let [provider (get- lib-provider lib )
5661 s (clean-lib-str (str lib))]
5762 (case (val provider)
5863 :github (str " https://github.com/" s " .git" )
6469 :sourcehut (str " https://git.sr.ht/~" s))))
6570
6671(defn git-ssh-url [lib]
67- (let [provider (some #( when ( re-seq ( key %) ( str lib)) %) providers )
72+ (let [provider (get- lib-provider lib )
6873 s (clean-lib-str (str lib))]
6974 (case (val provider)
7075 :github (str " git@github.com:" s " .git" )
8085 (ensure-git-dir client url)
8186 url)
8287 (catch Exception e
83- (if (re-seq #"^Unable to clone " (ex-message e))
88+ (if (re-seq #"^Unable to " (ex-message e))
8489 (let [url (git-ssh-url lib)]
8590 (ensure-git-dir client url)
8691 url)
Original file line number Diff line number Diff line change 8989 (is (= git-ssh-url-lib out))
9090 (is (fs/exists? bin-file))
9191 (is (= " Hello world!" (tu/run-bin-script 'hello))))))
92+
93+ (deftest install-lib-fail-if-provider-not-found
94+ (testing " install lib name fails provider lookup"
95+ (tu/reset-test-dir )
96+ (dirs/ensure-bbin-dirs {})
97+ (let [cli-opts {:script/lib " something-broken" }]
98+ (is (thrown? Exception " Unable to find an appropriate provider" (tu/run-install cli-opts)))
99+ )))
You can’t perform that action at this time.
0 commit comments