2022-12-04 12:19:08 -08:00
|
|
|
(ns user
|
2023-01-17 20:28:17 -08:00
|
|
|
(:require [babashka.pods :as pods]
|
|
|
|
|
[clojure.edn :as edn]))
|
2022-12-04 12:19:08 -08:00
|
|
|
|
2022-12-06 23:46:18 -08:00
|
|
|
(pods/load-pod 'atomisthq/tools.docker "0.1.0")
|
2022-12-06 22:19:23 -08:00
|
|
|
(require '[pod.atomisthq.docker :as docker])
|
2022-12-04 12:19:08 -08:00
|
|
|
|
|
|
|
|
;; parse image names using github.com/docker/distribution
|
|
|
|
|
;; turns golang structs into clojure maps
|
2023-01-17 20:28:17 -08:00
|
|
|
(docker/parse-image-name "gcr.io/whatever:tag")
|
2022-12-04 12:19:08 -08:00
|
|
|
;; automatically turns golang errors into Exceptions
|
|
|
|
|
(try
|
|
|
|
|
(docker/parse-image-name "gcr.io/whatever/:tag")
|
2023-01-17 20:28:17 -08:00
|
|
|
(catch Exception e
|
2022-12-04 12:19:08 -08:00
|
|
|
;; invalid reference format
|
|
|
|
|
(println (.getMessage e))))
|
|
|
|
|
|
|
|
|
|
;; parse dockerfiles using github.com/moby/buildkit
|
|
|
|
|
;; returns the Result struct transformed to a clojure map
|
|
|
|
|
(docker/parse-dockerfile "FROM \\\n gcr.io/whatever:tag\nCMD [\"run\"]")
|
|
|
|
|
|
2023-01-17 20:28:17 -08:00
|
|
|
;; run sbom generation on local image
|
|
|
|
|
(docker/sbom "vonwig/clojure-base:jdk17" (fn [event] (println event)))
|
|
|
|
|
|
|
|
|
|
(docker/hashes "vonwig/malware1:latest" (fn [event] (println event)))
|
|
|
|
|
|