internal/pkg: override working directory perms
All checks were successful
Test / Create distribution (push) Successful in 42s
Test / Sandbox (push) Successful in 2m31s
Test / ShareFS (push) Successful in 3m40s
Test / Hpkg (push) Successful in 4m20s
Test / Sandbox (race detector) (push) Successful in 4m51s
Test / Hakurei (race detector) (push) Successful in 5m52s
Test / Hakurei (push) Successful in 2m32s
Test / Flake checks (push) Successful in 1m42s
All checks were successful
Test / Create distribution (push) Successful in 42s
Test / Sandbox (push) Successful in 2m31s
Test / ShareFS (push) Successful in 3m40s
Test / Hpkg (push) Successful in 4m20s
Test / Sandbox (race detector) (push) Successful in 4m51s
Test / Hakurei (race detector) (push) Successful in 5m52s
Test / Hakurei (push) Successful in 2m32s
Test / Flake checks (push) Successful in 1m42s
This must be writable to enable renaming, and the final result is conventionally read-only alongside the entire directory contents. This change overrides the permission bits as part of Store. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -259,6 +259,11 @@ func (c *Cache) Store(
|
||||
if err = makeArtifact(workPathname); err != nil {
|
||||
return
|
||||
}
|
||||
// override this before hashing since it will be made read-only after the
|
||||
// rename anyway so do not let perm bits affect the checksum
|
||||
if err = os.Chmod(workPathname.String(), 0700); err != nil {
|
||||
return
|
||||
}
|
||||
var checksum Checksum
|
||||
if checksum, err = HashDir(workPathname); err != nil {
|
||||
return
|
||||
@@ -280,7 +285,10 @@ func (c *Cache) Store(
|
||||
if !errors.Is(err, os.ErrExist) {
|
||||
return
|
||||
}
|
||||
} else if err = os.Chmod(checksumPathname.String(), 0500); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if linkErr := os.Symlink(
|
||||
"../"+dirChecksum+"/"+path.Base(checksumPathname.String()),
|
||||
pathname.String(),
|
||||
|
||||
Reference in New Issue
Block a user