grafana/pkg/plugins/codegen/package_json.go

34 lines
662 B
Go
Raw Normal View History

package codegen
import (
"encoding/json"
"log"
"os"
"path/filepath"
)
type PackageJSON struct {
Version string `json:"version"`
}
// Opens the package.json file in the provided directory and returns a struct that represents its contents
func OpenPackageJSON(dir string) (PackageJSON, error) {
f, err := os.Open(filepath.Clean(dir + "/package.json"))
if err != nil {
return PackageJSON{}, err
}
defer func() {
if err := f.Close(); err != nil {
log.Println("error closing package.json", err)
}
}()
jsonObj := PackageJSON{}
if err := json.NewDecoder(f).Decode(&jsonObj); err != nil {
return PackageJSON{}, err
}
return jsonObj, nil
}