mirror of https://github.com/hashicorp/packer
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.pull/13233/head
parent
ac899c44c2
commit
44a94911da
@ -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…
Reference in new issue