github.com/skippbox/kompose-origin@v0.0.0-20160524133224-16a9dca7bac2/cli/docker/app/factory.go (about) 1 package app 2 3 import ( 4 "os" 5 6 "github.com/codegangsta/cli" 7 "github.com/docker/libcompose/cli/logger" 8 "github.com/docker/libcompose/docker" 9 "github.com/docker/libcompose/project" 10 ) 11 12 // ProjectFactory is a struct that holds the app.ProjectFactory implementation. 13 type ProjectFactory struct { 14 } 15 16 // Create implements ProjectFactory.Create using docker client. 17 func (p *ProjectFactory) Create(c *cli.Context) (project.APIProject, error) { 18 context := &docker.Context{} 19 context.LoggerFactory = logger.NewColorLoggerFactory() 20 Populate(context, c) 21 22 context.ComposeFiles = c.GlobalStringSlice("file") 23 24 if len(context.ComposeFiles) == 0 { 25 context.ComposeFiles = []string{"docker-compose.yml"} 26 if _, err := os.Stat("docker-compose.override.yml"); err == nil { 27 context.ComposeFiles = append(context.ComposeFiles, "docker-compose.override.yml") 28 } 29 } 30 31 context.ProjectName = c.GlobalString("project-name") 32 33 return docker.NewProject(context, nil) 34 }