From 0bd83646afe59e4e5abd01ecb1c3b81794129767 Mon Sep 17 00:00:00 2001 From: Jim Clark Date: Tue, 8 Aug 2023 17:40:26 -0700 Subject: [PATCH] Add shellwords parser --- docker/ops.go | 11 +++++++++++ flake.lock | 12 ++++++------ flake.nix | 2 +- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/docker/ops.go b/docker/ops.go index d8cc514..d45acb4 100644 --- a/docker/ops.go +++ b/docker/ops.go @@ -4,6 +4,7 @@ import ( "github.com/docker/distribution/reference" "github.com/docker/index-cli-plugin/lsp" "github.com/moby/buildkit/frontend/dockerfile/parser" + "github.com/kballard/go-shellquote" //"reflect" "crypto/sha256" @@ -120,6 +121,9 @@ func ProcessMessage(message *babashka.Message) (any, error) { { Name: "parse-dockerfile", }, + { + Name: "parse-shellwords", + }, { Name: "sbom", Code: ` @@ -176,6 +180,12 @@ func ProcessMessage(message *babashka.Message) (any, error) { } reader := strings.NewReader(args[0]) return parser.Parse(reader) + case "docker.tools/parse-shellwords": + args := []string{} + if err := json.Unmarshal([]byte(message.Args), &args); err != nil { + return nil, err + } + return shellquote.Split(args[0]) case "docker.tools/generate-sbom": args := []string{} @@ -208,6 +218,7 @@ func ProcessMessage(message *babashka.Message) (any, error) { return "done", nil + default: return nil, fmt.Errorf("Unknown var %s", message.Var) } diff --git a/flake.lock b/flake.lock index d5dade5..da99bfc 100644 --- a/flake.lock +++ b/flake.lock @@ -97,11 +97,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1688059353, - "narHash": "sha256-E5I5isTFgJGeJQ5GIj4A9yX2JUbC4O57sBIjY0YKqTQ=", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e407cfdb820c7384db3b864a9be6573cd5610cf5", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { @@ -153,11 +153,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1688067479, - "narHash": "sha256-GErdrM/MRz5Gf+BvAJA1Ir0bxsuEVlDfJ1GaEAa9EtA=", + "lastModified": 1691541352, + "narHash": "sha256-huAnvD9/udU6uZh3iEDLENA8duB0qaF1GQhPUcHHssA=", "owner": "slimslenderslacks", "repo": "nix-modules", - "rev": "56d8df624861ae6141892002ade2003f899f029f", + "rev": "e7964c84c7e07c0c93143d70a9fca1de1d132992", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 5aa55b2..99a32bb 100644 --- a/flake.nix +++ b/flake.nix @@ -13,7 +13,7 @@ dir = ./.; name = "babashka-pod-docker"; version = "0.0.1"; - custom-packages = pkgs: packages: + package-overlay = pkgs: packages: packages // { default = pkgs.writeShellScriptBin "entrypoint" '' ${packages.app}/bin/babashka-pod-docker