summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Cole Faust <colefaust@google.com> 2023-12-13 23:48:11 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2023-12-13 23:48:11 +0000
commit6a855191bd413d8ca15344af10bfc05f8e55d710 (patch)
tree41d52304ea4c0a1bbffe43ce03164dbcf169cb37
parent14a2362183d15cc8e618c80f5ea6f013997b8924 (diff)
Revert "Handle symlinks in sbox"
This reverts commit 14a2362183d15cc8e618c80f5ea6f013997b8924. Reason for revert: Breaks art tests on errorprone build Change-Id: I2e21867fba6c8c1660ffa564273b6200c63221f3
-rw-r--r--cmd/sbox/sbox.go25
1 files changed, 2 insertions, 23 deletions
diff --git a/cmd/sbox/sbox.go b/cmd/sbox/sbox.go
index e69a93067..3364f503f 100644
--- a/cmd/sbox/sbox.go
+++ b/cmd/sbox/sbox.go
@@ -22,7 +22,6 @@ import (
"flag"
"fmt"
"io"
- "io/fs"
"io/ioutil"
"os"
"os/exec"
@@ -479,8 +478,7 @@ func copyFiles(copies []*sbox_proto.Copy, fromDir, toDir string, exists existsTy
// copyOneFile copies a file and its permissions. If forceExecutable is true it adds u+x to the
// permissions. If exists is allowFromNotExists it returns nil if the from path doesn't exist.
// If write is onlyWriteIfChanged then the output file is compared to the input file and not written to
-// if it is the same, avoiding updating the timestamp. If from is a symlink, the symlink itself
-// will be copied, instead of what it points to.
+// if it is the same, avoiding updating the timestamp.
func copyOneFile(from string, to string, forceExecutable bool, exists existsType,
write writeType) error {
err := os.MkdirAll(filepath.Dir(to), 0777)
@@ -488,7 +486,7 @@ func copyOneFile(from string, to string, forceExecutable bool, exists existsType
return err
}
- stat, err := os.Lstat(from)
+ stat, err := os.Stat(from)
if err != nil {
if os.IsNotExist(err) && exists == allowFromNotExists {
return nil
@@ -496,25 +494,6 @@ func copyOneFile(from string, to string, forceExecutable bool, exists existsType
return err
}
- if stat.Mode()&fs.ModeSymlink != 0 {
- linkTarget, err := os.Readlink(from)
- if err != nil {
- return err
- }
- if write == onlyWriteIfChanged {
- toLinkTarget, err := os.Readlink(to)
- if err == nil && toLinkTarget == linkTarget {
- return nil
- }
- }
- err = os.Remove(to)
- if err != nil && !os.IsNotExist(err) {
- return err
- }
-
- return os.Symlink(linkTarget, to)
- }
-
perm := stat.Mode()
if forceExecutable {
perm = perm | 0100 // u+x