From 4e5e9b860ed7bda16a6cfb9164faa323cd7577f8 Mon Sep 17 00:00:00 2001 From: Miikka Koskinen Date: Mon, 22 Jul 2019 17:48:39 +0300 Subject: [PATCH] Initial commit --- .gitignore | 2 ++ README.md | 3 +++ deps.edn | 3 +++ src/clj_nvd/core.clj | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 deps.edn create mode 100644 src/clj_nvd/core.clj diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d006836 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.cpcache/ +target/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..a39d4a6 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# clj-nvd + +A sketch of using [lein-nvd](https://github.com/rm-hull/lein-nvd) with deps.edn. diff --git a/deps.edn b/deps.edn new file mode 100644 index 0000000..4aeea61 --- /dev/null +++ b/deps.edn @@ -0,0 +1,3 @@ +{:deps {nvd-clojure {:mvn/version "1.1.1"} + metosin/jsonista {:mvn/version "0.2.3"} + org.clojure/tools.deps.alpha {:mvn/version "0.7.527" :exclusions [org.slf4j/slf4j-nop]}}} diff --git a/src/clj_nvd/core.clj b/src/clj_nvd/core.clj new file mode 100644 index 0000000..ac21852 --- /dev/null +++ b/src/clj_nvd/core.clj @@ -0,0 +1,33 @@ +(ns clj-nvd.core + (:require [clojure.java.io :as io] + [clojure.tools.deps.alpha :as deps] + [clojure.tools.deps.alpha.reader :as deps.reader] + [jsonista.core :as json] + [nvd.task.check] + [nvd.task.purge-database] + [nvd.task.update-database])) + +(defn make-classpath [] + (let [lib-map (-> (deps.reader/read-deps [(io/file "deps.edn")]) + (deps/resolve-deps nil))] + (mapcat :paths (vals lib-map)))) + +(defn -main [command & args] + (let [config (try + (read-string (slurp "clj-nvd.edn")) + (catch java.io.FileNotFoundException _ + nil)) + temp-file (java.io.File/createTempFile "clj-nvd" ".json") + path (.getAbsolutePath temp-file) + classpath (make-classpath) + opts {:nvd config + :classpath classpath + :cmd-args args}] + (spit path (json/write-value-as-string opts)) + (case command + "check" (nvd.task.check/-main path) + "purge" (nvd.task.purge-database/-main path) + "update" (nvd.task.update-database/-main path) + (do + (.println *err* (str "No such command: " command)) + (System/exit 1)))))