diff --git a/examples/which.clj b/examples/which.clj new file mode 100755 index 00000000..fbd9666c --- /dev/null +++ b/examples/which.clj @@ -0,0 +1,17 @@ +#!/usr/bin/env bb + +(require '[clojure.java.io :as io]) + +(defn where [executable] + (let [path (System/getenv "PATH") + paths (.split path (System/getProperty "path.separator"))] + (loop [paths paths] + (when-first [p paths] + (let [f (io/file p executable)] + (if (and (.isFile f) + (.canExecute f)) + (.getCanonicalPath f) + (recur (rest paths)))))))) + +(when-let [executable (first *command-line-args*)] + (println (where executable)))