Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-12-17 14:59:07 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-12-17 14:59:07 +0300
commit8b573c94895dc0ac0e1d9d59cf3e8745e8b539ca (patch)
tree544930fb309b30317ae9797a9683768705d664c4 /workhorse/internal/helper/tempfile.go
parent4b1de649d0168371549608993deac953eb692019 (diff)
Add latest changes from gitlab-org/gitlab@13-7-stable-eev13.7.0-rc42
Diffstat (limited to 'workhorse/internal/helper/tempfile.go')
-rw-r--r--workhorse/internal/helper/tempfile.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/workhorse/internal/helper/tempfile.go b/workhorse/internal/helper/tempfile.go
new file mode 100644
index 00000000000..d8fc0d44698
--- /dev/null
+++ b/workhorse/internal/helper/tempfile.go
@@ -0,0 +1,35 @@
+package helper
+
+import (
+ "io"
+ "io/ioutil"
+ "os"
+)
+
+func ReadAllTempfile(r io.Reader) (tempfile *os.File, err error) {
+ tempfile, err = ioutil.TempFile("", "gitlab-workhorse-read-all-tempfile")
+ if err != nil {
+ return nil, err
+ }
+
+ defer func() {
+ // Avoid leaking an open file if the function returns with an error
+ if err != nil {
+ tempfile.Close()
+ }
+ }()
+
+ if err := os.Remove(tempfile.Name()); err != nil {
+ return nil, err
+ }
+
+ if _, err := io.Copy(tempfile, r); err != nil {
+ return nil, err
+ }
+
+ if _, err := tempfile.Seek(0, 0); err != nil {
+ return nil, err
+ }
+
+ return tempfile, nil
+}