aboutsummaryrefslogtreecommitdiff
path: root/format/pack/ingest/temp.go
diff options
context:
space:
mode:
Diffstat (limited to 'format/pack/ingest/temp.go')
-rw-r--r--format/pack/ingest/temp.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/format/pack/ingest/temp.go b/format/pack/ingest/temp.go
index b8c947ec..d0297ace 100644
--- a/format/pack/ingest/temp.go
+++ b/format/pack/ingest/temp.go
@@ -24,6 +24,7 @@ func openTemporaryArtifacts(state *ingestState) error {
}
revName := ""
+
var revFile *os.File
if state.writeRev {
revName, revFile, err = createTempFile(state.destination, "tmp_rev_")
@@ -54,18 +55,23 @@ func closeTemporaryArtifacts(state *ingestState) error {
if err := state.packFile.Close(); err != nil && out == nil {
out = err
}
+
state.packFile = nil
}
+
if state.idxFile != nil {
if err := state.idxFile.Close(); err != nil && out == nil {
out = err
}
+
state.idxFile = nil
}
+
if state.revFile != nil {
if err := state.revFile.Close(); err != nil && out == nil {
out = err
}
+
state.revFile = nil
}
@@ -76,10 +82,12 @@ func closeTemporaryArtifacts(state *ingestState) error {
func createTempFile(root *os.Root, prefix string) (string, *os.File, error) {
for range 32 {
name := prefix + rand.Text()
+
file, err := root.OpenFile(name, os.O_CREATE|os.O_EXCL|os.O_RDWR, 0o644)
if err == nil {
return name, file, nil
}
+
if errors.Is(err, fs.ErrExist) {
continue
}