packer_test: add file checker

Some tests will create files and directories as part of the execution
path for Packer, and we need a way to check this, so this commit adds a
new file gadget to do those checks after a command executes.
file_datasource
Lucas Bajolet 2 years ago
parent 69ec781ee2
commit 6096a38778

@ -0,0 +1,35 @@
package check
import (
"fmt"
"os"
)
type fileExists struct {
filepath string
isDir bool
}
func (fe fileExists) Check(_, _ string, _ error) error {
st, err := os.Stat(fe.filepath)
if err != nil {
return fmt.Errorf("failed to stat %q: %s", fe.filepath, err)
}
if st.IsDir() && !fe.isDir {
return fmt.Errorf("file %q is a directory, wasn't supposed to be", fe.filepath)
}
if !st.IsDir() && fe.isDir {
return fmt.Errorf("file %q is not a directory, was supposed to be", fe.filepath)
}
return nil
}
func FileExists(filePath string, isDir bool) Checker {
return fileExists{
filepath: filePath,
isDir: isDir,
}
}
Loading…
Cancel
Save