From 8561b996447793999a6465f9b9e3f0f7bbea2c6a Mon Sep 17 00:00:00 2001 From: baude Date: Tue, 25 Jun 2019 08:40:19 -0500 Subject: libpod removal from main (phase 2) this is phase 2 for the removal of libpod from main. Signed-off-by: baude --- pkg/util/utils.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'pkg/util/utils.go') diff --git a/pkg/util/utils.go b/pkg/util/utils.go index 61cdbbf38..9e49f08a0 100644 --- a/pkg/util/utils.go +++ b/pkg/util/utils.go @@ -337,3 +337,14 @@ func GetGlobalOpts(c *cliconfig.RunlabelValues) string { }) return strings.Join(optsCommand, " ") } + +// OpenExclusiveFile opens a file for writing and ensure it doesn't already exist +func OpenExclusiveFile(path string) (*os.File, error) { + baseDir := filepath.Dir(path) + if baseDir != "" { + if _, err := os.Stat(baseDir); err != nil { + return nil, err + } + } + return os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666) +} -- cgit v1.2.3-54-g00ecf