Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a855191 authored by Cole Faust's avatar Cole Faust Committed by Gerrit Code Review
Browse files

Revert "Handle symlinks in sbox"

This reverts commit 14a23621.

Reason for revert: Breaks art tests on errorprone build

Change-Id: I2e21867fba6c8c1660ffa564273b6200c63221f3
parent 14a23621
Loading
Loading
Loading
Loading
+2 −23
Original line number Diff line number Diff line
@@ -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