(require '[babashka.process :refer [shell process exec]] '[clojure.string :as strings] '[babashka.cli :as cli]) (defn osmosis-command [osm-file poly-file output-file] ["osmosis" "--read-pbf-fast" (str "file=" osm-file) "--bounding-polygon" (str"file=" poly-file) "--write-pbf" (str "file=" output-file)]) (defn osmium-command [osm-file poly-file output-file] ["osmium" "extract" "-p" poly-file osm-file "-o" output-file]) (defn extract-osm-pbf [osm-file poly-file] (let [output-file (strings/replace poly-file ".poly" ".osm.pbf") cmd (osmium-command osm-file poly-file output-file)] (println "Processing " poly-file " file to " output-file) (println cmd) (apply shell (into [{:continue true}] cmd)))) (def opts (cli/parse-opts *command-line-args* {:coerce {:paths []}})) (println "ok") (println opts) (doall (map #(extract-osm-pbf (:osm-file opts) %) (:paths opts)))