diff options
Diffstat (limited to 'plugin/manifest.go')
-rw-r--r-- | plugin/manifest.go | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/plugin/manifest.go b/plugin/manifest.go deleted file mode 100644 index 15b7f0555..000000000 --- a/plugin/manifest.go +++ /dev/null @@ -1,70 +0,0 @@ -package plugin - -import ( - "encoding/json" - "io/ioutil" - "os" - "path/filepath" - - "gopkg.in/yaml.v2" -) - -type Manifest struct { - Id string `json:"id" yaml:"id"` - Backend *ManifestBackend `json:"backend,omitempty" yaml:"backend,omitempty"` -} - -type ManifestBackend struct { - Executable string `json:"executable" yaml:"executable"` -} - -// FindManifest will find and parse the manifest in a given directory. -// -// In all cases other than a does-not-exist error, path is set to the path of the manifest file that was -// found. -// -// Manifests are JSON or YAML files named plugin.json, plugin.yaml, or plugin.yml. -func FindManifest(dir string) (manifest *Manifest, path string, err error) { - for _, name := range []string{"plugin.yml", "plugin.yaml"} { - path = filepath.Join(dir, name) - f, ferr := os.Open(path) - if ferr != nil { - if !os.IsNotExist(ferr) { - err = ferr - return - } - continue - } - b, ioerr := ioutil.ReadAll(f) - f.Close() - if ioerr != nil { - err = ioerr - return - } - var parsed Manifest - err = yaml.Unmarshal(b, &parsed) - if err != nil { - return - } - manifest = &parsed - return - } - - path = filepath.Join(dir, "plugin.json") - f, ferr := os.Open(path) - if ferr != nil { - if os.IsNotExist(ferr) { - path = "" - } - err = ferr - return - } - defer f.Close() - var parsed Manifest - err = json.NewDecoder(f).Decode(&parsed) - if err != nil { - return - } - manifest = &parsed - return -} |