src/foo/macros.clj
:
(ns foo.macros
(:require [clojure.java.shell :as shell]
[clojure.string :as string]))
(defmacro get-git-version []
(-> (shell/sh "bash" "-c" "git log --oneline -n 1")
:out
(string/split #" ")
first))
src/foo/core.cljs
:
(ns foo.core
(:require-macros [foo.macros :refer [get-git-version]]))
(def git-version (get-git-version))
REPL interaction:
cljs.user=> (require 'foo.core)
nil
cljs.user=> foo.core/git-version
"1f5c0d8"