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  }