Skip to content
This repository was archived by the owner on Mar 27, 2024. It is now read-only.

Commit 14e0b0a

Browse files
author
Priya Wadhwa
committed
Moved hard link logic into helper function
1 parent 8f79658 commit 14e0b0a

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

pkg/util/tar_utils.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,7 @@ func unpackTar(tr *tar.Reader, path string, whitelist []string) error {
127127
// Check if the linkname already exists
128128
if _, err := os.Stat(linkname); !os.IsNotExist(err) {
129129
// If it exists, create the hard link
130-
if err := os.Link(linkname, target); err != nil {
131-
logrus.Warnf("Failed to create hard link between %s and %s: %v", linkname, target, err)
132-
}
133-
logrus.Debugf("Created hard link from %s to %s", linkname, target)
130+
resolveHardlink(linkname, target)
134131
} else {
135132
hardlinks[target] = linkname
136133
}
@@ -141,17 +138,22 @@ func unpackTar(tr *tar.Reader, path string, whitelist []string) error {
141138
logrus.Info("Resolving hard links.")
142139
if _, err := os.Stat(linkname); !os.IsNotExist(err) {
143140
// If it exists, create the hard link
144-
if err := os.Link(linkname, target); err != nil {
145-
logrus.Warnf("Unable to create hard link from %s to %s: %v", linkname, target, err)
146-
}
147-
logrus.Debugf("Created hard link from %s to %s", linkname, target)
141+
resolveHardlink(linkname, target)
148142
} else {
149-
logrus.Warnf("Unable to create hard link from %s to %s", linkname, target)
143+
logrus.Errorf("Unable to create hard link from %s to %s", linkname, target)
150144
}
151145
}
152146
return nil
153147
}
154148

149+
func resolveHardlink(linkname, target string) {
150+
if err := os.Link(linkname, target); err != nil {
151+
logrus.Warnf("Unable to create hard link from %s to %s: %v", linkname, target, err)
152+
} else {
153+
logrus.Debugf("Created hard link from %s to %s", linkname, target)
154+
}
155+
}
156+
155157
func checkWhitelist(target string, whitelist []string) bool {
156158
for _, w := range whitelist {
157159
if HasFilepathPrefix(target, w) {

0 commit comments

Comments
 (0)