Documentation ¶
Overview ¶
Package fspath contains routines for fspath manipulation
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckConfigName ¶
CheckConfigName returns an error if configName is invalid
func JoinRootPath ¶
JoinRootPath joins filePath onto remote
If the remote has a leading "//" this is preserved to allow Windows network paths to be used as remotes.
If filePath is empty then remote will be returned.
If the path contains \ these will be converted to / on Windows.
func MakeConfigName ¶
MakeConfigName makes an input into something legal to be used as a config name. Returns a string where any sequences of illegal characters are replaced with a single underscore. If the input is already valid as a config name, it is returned unchanged. If the input is an empty string, a single underscore is returned.
func Split ¶
Split splits a remote into a parent and a leaf
if it returns leaf as an empty string then remote is a directory
if it returns parent as an empty string then that means the current directory
The returned values have the property that parent + leaf == remote (except under Windows where \ will be translated into /)
func SplitFs ¶
SplitFs splits a remote a remoteName and an remotePath.
SplitFs("remote:path/to/file") -> ("remote:", "path/to/file") SplitFs("/to/file") -> ("", "/to/file")
If it returns remoteName as "" then remotePath is a local path
The returned values have the property that remoteName + remotePath == remote (except under Windows where \ will be translated into /)
Types ¶
type Parsed ¶
type Parsed struct { Name string // Just the name of the config: "remote" or ":backend" ConfigString string // The whole config string: "remote:" or ":backend,value=6:" Path string // The file system path, may be empty Config configmap.Simple // key/value config parsed out of ConfigString may be nil }
Parsed is returned from Parse with the results of the connection string decomposition
If Name is "" then it is a local path in Path
Note that ConfigString + ":" + Path is equal to the input of Parse except that Path may have had \ converted to /
func Parse ¶
Parse deconstructs a path into a Parsed structure
If the path is a local path then parsed.Name will be returned as "".
So "remote:path/to/dir" will return Parsed{Name:"remote", Path:"path/to/dir"}, and "/path/to/local" will return Parsed{Name:"", Path:"/path/to/local"}
Note that this will turn \ into / in the fsPath on Windows
An error may be returned if the remote name has invalid characters or the parameters are invalid or the path is empty.