48 lines
947 B
Go
48 lines
947 B
Go
|
// 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)
|
||
|
}
|
||
|
}
|
||
|
}
|