diff --git a/.gitignore b/.gitignore index c01c9a6..329de6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ .idea node_modules bin/ -# dynamically generated flags -flags/allFlags.json diff --git a/flagd/Dockerfile b/flagd/Dockerfile index 02ff773..c801c24 100644 --- a/flagd/Dockerfile +++ b/flagd/Dockerfile @@ -1,4 +1,4 @@ -ARG FLAGD_BASE_IMAGE=ghcr.io/open-feature/flagd:v0.14.0 +ARG FLAGD_BASE_IMAGE=ghcr.io/open-feature/flagd:v0.14.1 ARG TARGETARCH FROM ${FLAGD_BASE_IMAGE} AS flagd diff --git a/launchpad/pkg/json.go b/launchpad/pkg/json.go index 3df7c72..3bd6e70 100644 --- a/launchpad/pkg/json.go +++ b/launchpad/pkg/json.go @@ -18,19 +18,28 @@ func atomicWriteFile(filename string, data []byte) error { } tmpName := tmpFile.Name() + cleanup := func() { + _ = tmpFile.Close() + _ = os.Remove(tmpName) + } + if _, err := tmpFile.Write(data); err != nil { - tmpFile.Close() - os.Remove(tmpName) + cleanup() + return err + } + + if err := tmpFile.Chmod(0644); err != nil { + cleanup() return err } if err := tmpFile.Close(); err != nil { - os.Remove(tmpName) + _ = os.Remove(tmpName) // File is closed, just remove. return err } if err := os.Rename(tmpName, filename); err != nil { - os.Remove(tmpName) + _ = os.Remove(tmpName) // File is closed, just remove. return err }