From c328b584c0449e846f8d49976df65fce657c2a67 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Mon, 25 Aug 2025 22:52:48 +0900 Subject: hst/fslink: improve string representation This shortens the representation of most common use cases and generally improves readability. Signed-off-by: Ophestra --- hst/fslink.go | 7 +++++-- hst/fslink_test.go | 21 +++++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) (limited to 'hst') diff --git a/hst/fslink.go b/hst/fslink.go index 8bba9b49..40b4fd8b 100644 --- a/hst/fslink.go +++ b/hst/fslink.go @@ -50,9 +50,12 @@ func (l *FSLink) String() string { return "" } - dereference := "" + var dereference string if l.Dereference { + if l.Target.String() == l.Linkname { + return l.Target.String() + "@" + } dereference = "*" } - return "&" + l.Target.String() + ":" + dereference + l.Linkname + return l.Target.String() + " -> " + dereference + l.Linkname } diff --git a/hst/fslink_test.go b/hst/fslink_test.go index c8583544..b3e196e6 100644 --- a/hst/fslink_test.go +++ b/hst/fslink_test.go @@ -12,7 +12,20 @@ func TestFSLink(t *testing.T) { {"nil", (*hst.FSLink)(nil), false, nil, nil, nil, ""}, {"zero", new(hst.FSLink), false, nil, nil, nil, ""}, - {"deref rel", &hst.FSLink{Target: m("/"), Linkname: ":3", Dereference: true}, false, nil, nil, nil, ""}, + {"deref rel", &hst.FSLink{Target: m("/"), Linkname: ":3", Dereference: true}, + false, nil, nil, nil, ""}, + {"deref differs", &hst.FSLink{ + Target: m("/.hakurei/etc"), + Linkname: "/etc/static", + Dereference: true, + }, true, container.Ops{ + &container.SymlinkOp{ + Target: m("/.hakurei/etc"), + LinkName: "/etc/static", + Dereference: true, + }, + }, m("/.hakurei/etc"), nil, + "/.hakurei/etc -> */etc/static"}, {"deref", &hst.FSLink{ Target: m("/run/current-system"), Linkname: "/run/current-system", @@ -24,7 +37,7 @@ func TestFSLink(t *testing.T) { Dereference: true, }, }, m("/run/current-system"), nil, - "&/run/current-system:*/run/current-system"}, + "/run/current-system@"}, {"direct", &hst.FSLink{ Target: m("/etc/mtab"), @@ -34,7 +47,7 @@ func TestFSLink(t *testing.T) { Target: m("/etc/mtab"), LinkName: "/proc/mounts", }, - }, m("/etc/mtab"), nil, "&/etc/mtab:/proc/mounts"}, + }, m("/etc/mtab"), nil, "/etc/mtab -> /proc/mounts"}, {"direct rel", &hst.FSLink{ Target: m("/etc/mtab"), @@ -44,6 +57,6 @@ func TestFSLink(t *testing.T) { Target: m("/etc/mtab"), LinkName: "../proc/mounts", }, - }, m("/etc/mtab"), nil, "&/etc/mtab:../proc/mounts"}, + }, m("/etc/mtab"), nil, "/etc/mtab -> ../proc/mounts"}, }) } -- cgit v1.3.1