37 lines
990 B
Clojure
37 lines
990 B
Clojure
(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 false}] 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)))
|