1
0
mirror of https://github.com/rancher/os.git synced 2025-09-18 16:27:31 +00:00

build based on os-config.yml

WIP: build scripts
This commit is contained in:
Ivan Mikushin
2015-06-16 01:19:17 +05:00
parent dff70f8362
commit 4bf30683e7
42 changed files with 140 additions and 742 deletions

View File

@@ -5,6 +5,7 @@ import (
"io"
"io/ioutil"
"os"
"sort"
"strings"
log "github.com/Sirupsen/logrus"
@@ -37,6 +38,17 @@ func configSubcommands() []cli.Command {
},
},
},
{
Name: "images",
Usage: "List Docker images for a configuration from a file",
Action: runImages,
Flags: []cli.Flag{
cli.StringFlag{
Name: "input, i",
Usage: "File from which to read config",
},
},
},
{
Name: "export",
Usage: "export configuration",
@@ -64,6 +76,36 @@ func configSubcommands() []cli.Command {
}
}
func imagesFromConfig(cfg *config.Config) []string {
imagesMap := map[string]int{}
for _, service := range cfg.BootstrapContainers {
imagesMap[service.Image] = 1
}
for _, service := range cfg.SystemContainers {
imagesMap[service.Image] = 1
}
images := make([]string, len(imagesMap))
i := 0
for image := range imagesMap {
images[i] = image
i += 1
}
sort.Strings(images)
return images
}
func runImages(c *cli.Context) {
configFile := c.String("input")
cfg := config.ReadConfig(configFile)
if cfg == nil {
log.Fatalf("Could not read config from file %v", configFile)
}
images := imagesFromConfig(cfg)
fmt.Println(strings.Join(images, " "))
}
func runImport(c *cli.Context) {
var input io.ReadCloser
var err error