ignition/parsedeps.go

48 lines
947 B
Go
Raw Normal View History

// Helper for parsing glide.lock file and spitting out
// bundled provides statements for an rpm spec file.
package main
import (
"fmt"
"io/ioutil"
"log"
"path"
yaml "gopkg.in/yaml.v2"
)
type Import struct {
Name string
Version string
Subpackages []string
}
type Glide struct {
Hash string
Updated string
Imports []Import
TestImports []Import
}
func main() {
yamlFile, err := ioutil.ReadFile("glide.lock")
if err != nil {
log.Fatal(err)
}
var glide Glide
err = yaml.Unmarshal(yamlFile, &glide)
if err != nil {
log.Fatal(err)
}
for _, imp := range glide.Imports {
// we need format like this:
// Provides: bundled(golang(github.com/coreos/go-oidc/oauth2)) = %{version}-5cf2aa52da8c574d3aa4458f471ad6ae2240fe6b
for _, subp := range imp.Subpackages {
name := path.Join(imp.Name, subp)
fmt.Printf("Provides: bundled(golang(%s)) = %s-%s\n", name, "%{version}", imp.Version)
}
}
}