60 lines
1.0 KiB
Go
60 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os"
|
|
|
|
"github.com/go-chef/chef"
|
|
)
|
|
|
|
func main() {
|
|
// simple arg parsing
|
|
//cookPath := flag.String("cookbook", "c", "Path to cookbook for upload")
|
|
// flag.Parse()
|
|
|
|
// read a client key
|
|
key, err := ioutil.ReadFile("key.pem")
|
|
if err != nil {
|
|
fmt.Println("Couldn't read key.pem:", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
// build a client
|
|
client, err := chef.NewClient(&chef.Config{
|
|
Name: "foo",
|
|
Key: string(key),
|
|
// goiardi is on port 4545 by default. chef-zero is 8889
|
|
BaseURL: "http://localhost:8443",
|
|
})
|
|
if err != nil {
|
|
fmt.Println("Issue setting up client:", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
// List Cookbooks
|
|
cookList, err := client.Cookbooks.List()
|
|
if err != nil {
|
|
fmt.Println("Issue listing cookbooks:", err)
|
|
}
|
|
|
|
// Print out the list
|
|
fmt.Println(cookList)
|
|
/*
|
|
*'parse' metadata...
|
|
this would prefer .json over .rb
|
|
if it's .rb lets maybe try to eval it ?
|
|
otherwise just extract name/version if they exist
|
|
*/
|
|
|
|
/*
|
|
|
|
|
|
* generate sums
|
|
* create sandbox
|
|
* upload to sandbox
|
|
*
|
|
*/
|
|
|
|
}
|