Skip to content

Commit c257097

Browse files
committed
Add Go package github.com/theory/jsonpath
1 parent a81e868 commit c257097

File tree

7 files changed

+79
-0
lines changed

7 files changed

+79
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
https://github.com/theory/jsonpath
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module example.com/main
2+
3+
go 1.23
4+
5+
require github.com/theory/jsonpath v0.10.0
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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=
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash
2+
set -euo pipefail
3+
4+
readonly script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5+
6+
"$script_dir"/build/main "$@"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
cd "$(dirname "$BASH_SOURCE[0]")"
5+
go get -u

0 commit comments

Comments
 (0)