2024 Clojure 状态调查中分享您的想法!

欢迎!有关此工作原理的更多信息,请参阅关于页面。

+2
tools.build
已关闭

我希望通过 API 获取 git hash 以找到精确的版本。
谢谢。

(defn git-hash
  "Shells out to git and returns hash of commits on this branch:
    git rev-parse HEAD

  Options:
    :dir - dir to invoke this command from, by default current directory
    :short? - shorten hash to 7 length characters"
  [{:keys [dir short?] :or {dir "."} :as params}]
  (assert-specs "git-hash" params
                :dir ::specs/path
                :short? ::specs/boolean)
  (-> {:command-args (cond-> ["git" "rev-parse"]
                       short? (conj "--short")
                       :default (conj "HEAD"))
       :dir (.getPath (resolve-path dir))
       :out :capture}
      process
      :out
      str/trim))
已关闭,附带以下说明:从 v0.6.5 开始使用 git-process: (api/git-process {:git-args "rev-parse --short HEAD"})

2 答案

0

只是好奇 - 您打算用它做什么?

我以前会把提交 SHA 包含到最终的捆绑包中,这样可以将其包含在 “--version” 信息和 datomic audit-tx 中。
by
抱歉,我忘记写为什么需要这个了。

我在考虑使用git hash来标记工件。
by
为命名uber-file加上一个赞。

将它放在`tools.gitlib`中好吗?
0
by
...