File tree Expand file tree Collapse file tree 7 files changed +79
-0
lines changed
implementations/Golang_github.com-theory-jsonpath Expand file tree Collapse file tree 7 files changed +79
-0
lines changed Original file line number Diff line number Diff line change 1+ https://github.com/theory/jsonpath
Original file line number Diff line number Diff line change 1+ root = implementations/Golang_github.com-theory-jsonpath
2+ builddir = $root /build
3+
4+ # Hack target directory because golang is bad, again
5+ rule build
6+ command = cd $root && go build -o build/main
7+
8+ build $builddir/main : build | $root/main.go $root/go.mod $root/go.sum
9+
10+ build $root/install : phony $builddir/main
Original file line number Diff line number Diff line change 1+ module example.com/main
2+
3+ go 1.23
4+
5+ require github.com/theory/jsonpath v0.10.0
Original file line number Diff line number Diff line change 1+ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c =
2+ github.com/davecgh/go-spew v1.1.1 /go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38 =
3+ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM =
4+ github.com/pmezard/go-difflib v1.0.0 /go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4 =
5+ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA =
6+ github.com/stretchr/testify v1.10.0 /go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY =
7+ github.com/theory/jsonpath v0.10.0 h1:qjuGwjcWMPfYmhjDnOjP9vmGzISeRzQ/87u2GZIWLoA =
8+ github.com/theory/jsonpath v0.10.0 /go.mod h1:yv+crL58A+g3yxLr1sbOyn8H+L/6kS4AMXlXeVGOuNU =
9+ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA =
10+ gopkg.in/yaml.v3 v3.0.1 /go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM =
Original file line number Diff line number Diff line change 1+ // Copyright 2020 VMware, Inc.
2+ // SPDX-License-Identifier: GPL-3.0
3+
4+ package main
5+
6+ import (
7+ "encoding/json"
8+ "fmt"
9+ "io"
10+ "os"
11+
12+ "github.com/theory/jsonpath"
13+ )
14+
15+ func main () {
16+ selector := os .Args [1 ]
17+
18+ data , err := io .ReadAll (os .Stdin )
19+ if err != nil {
20+ fmt .Fprintln (os .Stderr , err )
21+ os .Exit (1 )
22+ }
23+
24+ var json_data any
25+ if err := json .Unmarshal ([]byte (data ), & json_data ); err != nil {
26+ fmt .Fprintln (os .Stderr , err )
27+ os .Exit (2 )
28+ }
29+
30+ path , err := jsonpath .Parse (selector )
31+ if err != nil {
32+ fmt .Fprintln (os .Stderr , err )
33+ os .Exit (2 )
34+ }
35+
36+ json_result , err := json .Marshal (path .Select (json_data ))
37+ if err != nil {
38+ fmt .Fprintln (os .Stderr , err )
39+ os .Exit (2 )
40+ }
41+ fmt .Println (string (json_result ))
42+ }
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+ set -euo pipefail
3+
4+ readonly script_dir=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd ) "
5+
6+ " $script_dir " /build/main " $@ "
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+ set -euo pipefail
3+
4+ cd " $( dirname " $BASH_SOURCE [0]" ) "
5+ go get -u
You can’t perform that action at this time.
0 commit comments