diff --git a/src/babashka/pods/impl.clj b/src/babashka/pods/impl.clj index c01ab24..313b61f 100644 --- a/src/babashka/pods/impl.clj +++ b/src/babashka/pods/impl.clj @@ -383,14 +383,19 @@ (read-readers describe-reply resolve-fn))] {:format format, :ops ops, :readers readers})) -(defn load-pod-metadata [pod-spec opts] - (let [{:keys [:pod-spec :opts]} (resolve-pod pod-spec opts) - running-pod (run-pod pod-spec opts) +(defn run-pod-for-metadata [pod-spec opts] + (let [running-pod (run-pod pod-spec opts) describe-reply (describe-pod running-pod) ops (describe->ops describe-reply)] (destroy* (assoc running-pod :ops ops)) describe-reply)) +(defn load-pod-metadata [pod-spec {:keys [:download-only] :as opts}] + (let [{:keys [:pod-spec :opts]} (resolve-pod pod-spec opts)] + (if download-only + (resolver/warn "Not running pod" pod-spec "to pre-cache metadata because OS and/or arch are different than system") + (run-pod-for-metadata pod-spec opts)))) + (defn load-pod ([pod-spec] (load-pod pod-spec nil)) ([pod-spec opts] diff --git a/src/babashka/pods/sci.clj b/src/babashka/pods/sci.clj index 240886d..986d2d4 100644 --- a/src/babashka/pods/sci.clj +++ b/src/babashka/pods/sci.clj @@ -43,7 +43,8 @@ (defn load-pod-metadata* [bb-edn-file pod-spec {:keys [:version :cache] :as opts}] (let [metadata (impl/load-pod-metadata pod-spec opts) - cache-file (when cache (metadata-cache-file bb-edn-file pod-spec opts))] + cache-file (when (and metadata cache) + (metadata-cache-file bb-edn-file pod-spec opts))] (when cache-file (io/make-parents cache-file) (when (fs/writable? (fs/parent cache-file))