1package cmd
2
3import (
4	"github.com/cloudfoundry/bosh-utils/logger"
5	boshsys "github.com/cloudfoundry/bosh-utils/system"
6)
7
8type TempRootConfigurator interface {
9	PrepareAndSetTempRoot(path string, logger logger.Logger) error
10}
11
12type tempRootConfigurator struct {
13	fs boshsys.FileSystem
14}
15
16func NewTempRootConfigurator(fs boshsys.FileSystem) TempRootConfigurator {
17	return &tempRootConfigurator{fs: fs}
18}
19
20func (c *tempRootConfigurator) PrepareAndSetTempRoot(path string, logger logger.Logger) error {
21	logger.Info("tempRootConfigurator", "Preparing temp root: %s", path)
22
23	if c.fs.FileExists(path) {
24		logger.Info("tempRootConfigurator", "Path exists, deleting")
25		err := c.fs.RemoveAll(path)
26		if err != nil {
27			return err
28		}
29	}
30
31	logger.Info("tempRootConfigurator", "Setting file system temp root")
32	err := c.fs.ChangeTempRoot(path)
33	if err != nil {
34		return err
35	}
36
37	return nil
38}
39