Rename namespace to docker.tools
I have tested this version in the datoms project.
This commit is contained in:
committed by
James Carnegie
parent
4f77f40fb2
commit
63d3cc2f0a
3
.gitignore
vendored
3
.gitignore
vendored
@@ -5,3 +5,6 @@ babashka-pod-docker
|
||||
/.cpcache/
|
||||
/.lsp/
|
||||
/.nrepl-port
|
||||
/vendor/
|
||||
/result
|
||||
/.direnv/
|
||||
|
||||
@@ -9,12 +9,12 @@ This is a [babashka pod](https://github.com/babashka/pods) that binds some golan
|
||||
|
||||
```clojure
|
||||
(require '[babashka.pods :as pods])
|
||||
(pods/load-pod 'docker/docker-tools "0.1.0")
|
||||
(pods/load-pod 'docker/tools "0.1.0")
|
||||
; OR use a locally built pod binary
|
||||
#_(pods/load-pod "./babashka-pod-docker")
|
||||
|
||||
;; load-pod will create this namespace with two vars
|
||||
(require '[docker.babashka-pod-docker :as docker])
|
||||
(require '[docker.tools :as docker])
|
||||
|
||||
;; parse image names using github.com/docker/distribution
|
||||
;; turns golang structs into clojure maps
|
||||
@@ -79,11 +79,11 @@ Here is an example of bindings that will resolve at compile-time and go through
|
||||
|
||||
;; statically define dispatch functions - this is synchronous
|
||||
(defn parse [s]
|
||||
(impl/invoke-public "docker.docker-tools" "docker.babashka-pod-docker/parse-dockerfile" [s] {}))
|
||||
(impl/invoke-public "docker.tools" "docker.tools/parse-dockerfile" [s] {}))
|
||||
|
||||
;; async example
|
||||
(defn generate-sbom [s]
|
||||
(impl/invoke-public "docker.docker-tools" "docker.babashka-pod-docker/generate-sbom"
|
||||
(impl/invoke-public "docker.tools" "docker.tools/generate-sbom"
|
||||
[s cb]
|
||||
{:handlers {:done (fn [])
|
||||
:success cb
|
||||
@@ -99,3 +99,4 @@ This method of dispatch does not require any dynamic namespace generation.
|
||||
## Contributing
|
||||
|
||||
You can find information about contributing to this project in the CONTRIBUTING.md
|
||||
|
||||
|
||||
12
dev/user.clj
12
dev/user.clj
@@ -23,9 +23,9 @@
|
||||
{:pod/id (:pod-id pod)})))
|
||||
|
||||
(comment
|
||||
(pods/load-pod 'docker.docker-tools "0.1.0")
|
||||
(pods/load-pod 'docker.tools "0.1.0")
|
||||
|
||||
(require '[docker.babashka-pod-docker :as docker])
|
||||
(require '[docker.tools :as docker])
|
||||
|
||||
|
||||
;; parse image names using github.com/docker/distribution
|
||||
@@ -55,8 +55,8 @@
|
||||
(defn generate-sbom
|
||||
[image]
|
||||
(impl/invoke-public
|
||||
"docker.docker-tools"
|
||||
"docker.babashka-pod-docker/generate-sbom"
|
||||
"docker.tools"
|
||||
"docker.tools/generate-sbom"
|
||||
[image "" ""]
|
||||
{:handlers {:done (fn [] (println "Done"))
|
||||
:success (fn [msg] (println "msg: " msg))
|
||||
@@ -65,8 +65,8 @@
|
||||
(comment
|
||||
(println (load-pod "./babashka-pod-docker"))
|
||||
(impl/invoke-public
|
||||
"docker.docker-tools"
|
||||
"docker.babashka-pod-docker/generate-sbom"
|
||||
"docker.tools"
|
||||
"docker.tools/generate-sbom"
|
||||
["ubuntu:latest" "" ""]
|
||||
{})
|
||||
(generate-sbom "alpine")
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"dockerfileparse/user/parser/babashka"
|
||||
"babashka-pod-docker/babashka"
|
||||
)
|
||||
|
||||
type Reference struct {
|
||||
@@ -111,7 +111,7 @@ func ProcessMessage(message *babashka.Message) (any, error) {
|
||||
Namespaces: []babashka.Namespace{
|
||||
{
|
||||
// this is the pod-id
|
||||
Name: "docker.docker-tools",
|
||||
Name: "docker.tools",
|
||||
Vars: []babashka.Var{
|
||||
{
|
||||
Name: "parse-image-name",
|
||||
@@ -127,8 +127,8 @@ func ProcessMessage(message *babashka.Message) (any, error) {
|
||||
(sbom image cb {}))
|
||||
([image cb opts]
|
||||
(babashka.pods/invoke
|
||||
"docker.docker-tools"
|
||||
'docker.babashka-pod-docker/generate-sbom
|
||||
"docker.tools"
|
||||
'docker.tools/generate-sbom
|
||||
[image]
|
||||
{:handlers {:success (fn [event]
|
||||
(cb event))
|
||||
@@ -145,8 +145,8 @@ func ProcessMessage(message *babashka.Message) (any, error) {
|
||||
(hashes image cb {}))
|
||||
([image cb opts]
|
||||
(babashka.pods/invoke
|
||||
"docker.docker-tools"
|
||||
'docker.babashka-pod-docker/generate-hashes
|
||||
"docker.tools"
|
||||
'docker.tools/generate-hashes
|
||||
[image]
|
||||
{:handlers {:success (fn [event]
|
||||
(cb event))
|
||||
@@ -161,21 +161,21 @@ func ProcessMessage(message *babashka.Message) (any, error) {
|
||||
}, nil
|
||||
case "invoke":
|
||||
switch message.Var {
|
||||
case "docker.babashka-pod-docker/parse-image-name":
|
||||
case "docker.tools/parse-image-name":
|
||||
args := []string{}
|
||||
if err := json.Unmarshal([]byte(message.Args), &args); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return parse_uri(args[0])
|
||||
case "docker.babashka-pod-docker/parse-dockerfile":
|
||||
case "docker.tools/parse-dockerfile":
|
||||
args := []string{}
|
||||
if err := json.Unmarshal([]byte(message.Args), &args); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
reader := strings.NewReader(args[0])
|
||||
return parser.Parse(reader)
|
||||
case "docker.babashka-pod-docker/generate-sbom":
|
||||
case "docker.tools/generate-sbom":
|
||||
args := []string{}
|
||||
|
||||
if err := json.Unmarshal([]byte(message.Args), &args); err != nil {
|
||||
@@ -194,7 +194,7 @@ func ProcessMessage(message *babashka.Message) (any, error) {
|
||||
}
|
||||
return "done", nil
|
||||
|
||||
case "docker.babashka-pod-docker/generate-hashes":
|
||||
case "docker.tools/generate-hashes":
|
||||
args := []string{}
|
||||
if err := json.Unmarshal([]byte(message.Args), &args); err != nil {
|
||||
return nil, err
|
||||
|
||||
31
flake.nix
31
flake.nix
@@ -11,22 +11,41 @@
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
|
||||
in
|
||||
{
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = with pkgs; [ go gotools golangci-lint gopls gopkgs go-outline ];
|
||||
};
|
||||
packages = {
|
||||
packages = rec {
|
||||
default = pkgs.buildGoModule {
|
||||
pname = "babashka-pod-docker";
|
||||
version = "0.0.1";
|
||||
src = ./.;
|
||||
vendorSha256 = "sha256-KUWqddPcv+hLStd7JEzQBUiGLPLYwfmyVoG1BtaHWXY=";
|
||||
postInstall = ''
|
||||
mv $out/bin/parser $out/bin/babashka-pod-docker
|
||||
'';
|
||||
|
||||
# uncomment this and re-run to find the new vendor sha when module deps change
|
||||
# note that you'll get inconsistent vendor deps if this gets out of sync because
|
||||
# this sha defines the input for the mod deps derivation
|
||||
# vendorSha256 = nixpkgs.lib.fakeSha256;
|
||||
vendorSha256 = "sha256-jCjNhi0eqEBNPts/xmbwugs0T6HUw1ESip/li4/J6YY=";
|
||||
CGO_ENABLED = 0;
|
||||
};
|
||||
|
||||
docker = pkgs.dockerTools.buildImage {
|
||||
name = "docker-pod";
|
||||
tag = "latest";
|
||||
config = {
|
||||
Cmd = ["${default}/bin/babashka-pod-docker"];
|
||||
};
|
||||
};
|
||||
|
||||
default-linux = default.overrideAttrs (old: old // {GOOS = "linux"; GOARCH = "arm64";});
|
||||
docker-arm64 = pkgs.dockerTools.buildImage {
|
||||
name = "docker-pod";
|
||||
tag = "latest";
|
||||
config = {
|
||||
Cmd = ["${default-linux}/bin/linux_arm64/babashka-pod-docker"];
|
||||
};
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
2
go.mod
2
go.mod
@@ -1,4 +1,4 @@
|
||||
module dockerfileparse/user/parser
|
||||
module babashka-pod-docker
|
||||
|
||||
go 1.19
|
||||
|
||||
|
||||
Reference in New Issue
Block a user