From dd84b9d64fb98746a230cd24233ff50a562c39c9 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Fri, 28 Apr 2023 01:36:44 +0800 Subject: --- cli/internal/turbopath/relative_unix_path.go | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 cli/internal/turbopath/relative_unix_path.go (limited to 'cli/internal/turbopath/relative_unix_path.go') diff --git a/cli/internal/turbopath/relative_unix_path.go b/cli/internal/turbopath/relative_unix_path.go new file mode 100644 index 0000000..05829e2 --- /dev/null +++ b/cli/internal/turbopath/relative_unix_path.go @@ -0,0 +1,31 @@ +package turbopath + +import ( + "path" + "path/filepath" +) + +// RelativeUnixPath is a relative path using Unix `/` separators. +type RelativeUnixPath string + +// ToString returns a string represenation of this Path. +// Used for interfacing with APIs that require a string. +func (p RelativeUnixPath) ToString() string { + return string(p) +} + +// ToSystemPath converts a RelativeUnixPath to a RelativeSystemPath. +func (p RelativeUnixPath) ToSystemPath() RelativeSystemPath { + return RelativeSystemPath(filepath.FromSlash(p.ToString())) +} + +// ToUnixPath converts a RelativeUnixPath to a RelativeSystemPath. +func (p RelativeUnixPath) ToUnixPath() RelativeUnixPath { + return p +} + +// Join appends relative path segments to this RelativeUnixPath. +func (p RelativeUnixPath) Join(additional ...RelativeUnixPath) RelativeUnixPath { + cast := RelativeUnixPathArray(additional) + return RelativeUnixPath(path.Join(p.ToString(), path.Join(cast.ToStringArray()...))) +} -- cgit v1.2.3-70-g09d2