Add shellwords parser

This commit is contained in:
Jim Clark
2023-08-08 17:40:26 -07:00
parent 9c22bf43e4
commit 0bd83646af
3 changed files with 18 additions and 7 deletions

View File

@@ -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)
}

12
flake.lock generated
View File

@@ -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": {

View File

@@ -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