gpm/lib/package.go

32 lines
737 B
Go

package lib
import (
"encoding/json"
"fmt"
"os"
)
type PackageJSON struct {
Name string `json:"name"`
Version string `json:"version"`
Dependencies map[string]string `json:"dependencies"`
DevDependencies map[string]string `json:"devDependencies"`
}
func ParsePackageJson(path string) (PackageJSON, error) {
f, err := os.Open(path)
if os.IsNotExist(err) {
return PackageJSON{}, os.ErrNotExist
} else if err != nil {
return PackageJSON{}, fmt.Errorf("could not read file: %v", err)
}
defer f.Close()
var p PackageJSON
if err := json.NewDecoder(f).Decode(&p); err != nil {
return PackageJSON{}, fmt.Errorf("could not parse package.json file: %v", err)
}
return p, nil
}