diff --git a/.gitignore b/.gitignore index 4c5f88a..1b4e516 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *~ .*.swp +/tests_path.source diff --git a/jsonnet/cmd.go b/jsonnet/cmd.go new file mode 100644 index 0000000..f2f458c --- /dev/null +++ b/jsonnet/cmd.go @@ -0,0 +1,50 @@ +/* +Copyright 2017 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "fmt" + "io/ioutil" + "os" + + "github.com/google/go-jsonnet" +) + +func usage() { + fmt.Println("usage: jsonnet ") +} + +func main() { + // TODO(sbarzowski) Be consistent about error codes with C++ maybe + vm := jsonnet.MakeVM() + if len(os.Args) != 2 { + usage() + os.Exit(1) + } + filename := os.Args[1] + snippet, err := ioutil.ReadFile(filename) + if err != nil { + fmt.Fprintf(os.Stderr, "Error reading input file: %v\n", err.Error()) + os.Exit(1) + } + json, err := vm.EvaluateSnippet(filename, string(snippet)) + if err != nil { + fmt.Fprintf(os.Stderr, "%v\n", err.Error()) + os.Exit(2) + } + fmt.Println(json) +} diff --git a/jsonnet/jsonnet b/jsonnet/jsonnet new file mode 100755 index 0000000..69f9778 Binary files /dev/null and b/jsonnet/jsonnet differ diff --git a/tests.sh b/tests.sh new file mode 100755 index 0000000..acdf7b4 --- /dev/null +++ b/tests.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +source tests_path.source +export DISABLE_EXT_PARAMS=true +export DISABLE_LIB_TESTS=true +export DISABLE_FMT_TESTS=true +export JSONNET_BIN="$PWD/jsonnet/jsonnet" +cd "$TESTS_PATH" +./tests.sh