package workdir import ( "context" "os" "github.com/go-logr/logr" ) func CreateWorkdir(ctx context.Context, path string) (workdir string, err error) { log, err := logr.FromContext(ctx) if err != nil { return "", err } if len(path) > 0 { log.Info("Creating a new directory", "path", path) // Create a dir using the path if err := os.Mkdir(path, 0777); err != nil { return path, err } // TODO(@allanger): I've got a feeling that it doesn't have to look that bad workdir = path } else { log.Info("Path is not set, creating a temporary directory") // Create a temporary dir workdir, err = os.MkdirTemp("", "shoebill") if err != nil { return workdir, err } } if err := os.Mkdir(workdir+"/.charts", os.ModePerm); err != nil { return "", err } return workdir, nil } func RemoveWorkdir(path string) (err error) { return os.RemoveAll(path) }