github.com/chenbh/concourse/v6@v6.4.2/worker/workercmd/houdini.go (about)

     1  package workercmd
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"path/filepath"
     7  
     8  	"code.cloudfoundry.org/garden/server"
     9  	"code.cloudfoundry.org/lager"
    10  	"github.com/tedsuo/ifrit"
    11  	"github.com/vito/houdini"
    12  )
    13  
    14  func (cmd *WorkerCommand) houdiniRunner(logger lager.Logger) (ifrit.Runner, error) {
    15  	depotDir := filepath.Join(cmd.WorkDir.Path(), "containers")
    16  
    17  	err := os.MkdirAll(depotDir, 0755)
    18  	if err != nil {
    19  		return nil, fmt.Errorf("failed to create depot dir: %s", err)
    20  	}
    21  
    22  	backend := houdini.NewBackend(depotDir)
    23  
    24  	server := server.New(
    25  		"tcp",
    26  		cmd.bindAddr(),
    27  		0,
    28  		backend,
    29  		logger,
    30  	)
    31  
    32  	return gardenServerRunner{logger, server}, nil
    33  }
    34  
    35  func (cmd *WorkerCommand) bindAddr() string {
    36  	return fmt.Sprintf("%s:%d", cmd.BindIP.IP, cmd.BindPort)
    37  }