code: func Populate(context *project.Context, c *cli.Context) {
  	// urfave/cli does not distinguish whether the first string in the slice comes from the envvar
  	// or is from a flag. Worse off, it appends the flag values to the envvar value instead of
  	// overriding it. To ensure the multifile envvar case is always handled, the first string
  	// must always be split. It gives a more consistent behavior, then, to split each string in
  	// the slice.
  	for _, v := range c.GlobalStringSlice("file") {
  		context.ComposeFiles = append(context.ComposeFiles, strings.Split(v, string(os.PathListSeparator))...)
  	}
  
  	if len(context.ComposeFiles) == 0 {
  		context.ComposeFiles = []string{"docker-compose.yml"}
  		if _, err := os.Stat("docker-compose.override.yml"); err == nil {
  			context.ComposeFiles = append(context.ComposeFiles, "docker-compose.override.yml")
  		}
  	}
  
  	context.ProjectName = c.GlobalString("project-name")
  }
docs: // Populate updates the specified project context based on command line arguments and subcommands.