aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/initsymlink.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-10-07 20:06:26 +0900
committerOphestra <cat@gensokyo.uk>2025-10-07 20:57:58 +0900
commit0e6c1a50260de141c50bb50fd3f2b2bcf9a3fe64 (patch)
treedfe9c40ceb8c1be8d2728a2db9017bffef174d3d /container/initsymlink.go
parentd23b4dc9e64d3f00e746c65f3038a1a6de44b8f5 (diff)
container/check: move absolute pathname
This allows use of absolute pathname values without importing container. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/initsymlink.go')
-rw-r--r--container/initsymlink.go10
1 files changed, 6 insertions, 4 deletions
diff --git a/container/initsymlink.go b/container/initsymlink.go
index 7bd71746..7d722d5b 100644
--- a/container/initsymlink.go
+++ b/container/initsymlink.go
@@ -4,19 +4,21 @@ import (
"encoding/gob"
"fmt"
"path"
+
+ "hakurei.app/container/check"
)
func init() { gob.Register(new(SymlinkOp)) }
// Link appends an [Op] that creates a symlink in the container filesystem.
-func (f *Ops) Link(target *Absolute, linkName string, dereference bool) *Ops {
+func (f *Ops) Link(target *check.Absolute, linkName string, dereference bool) *Ops {
*f = append(*f, &SymlinkOp{target, linkName, dereference})
return f
}
// SymlinkOp optionally dereferences LinkName and creates a symlink at container path Target.
type SymlinkOp struct {
- Target *Absolute
+ Target *check.Absolute
// LinkName is an arbitrary uninterpreted pathname.
LinkName string
@@ -28,8 +30,8 @@ func (l *SymlinkOp) Valid() bool { return l != nil && l.Target != nil && l.LinkN
func (l *SymlinkOp) early(_ *setupState, k syscallDispatcher) error {
if l.Dereference {
- if !isAbs(l.LinkName) {
- return &AbsoluteError{l.LinkName}
+ if !path.IsAbs(l.LinkName) {
+ return &check.AbsoluteError{Pathname: l.LinkName}
}
if name, err := k.readlink(l.LinkName); err != nil {
return err