Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Path resolving:
- An http URL contains the sequence
"http(s)://"
. - A local filepath does not contain colons, except as second character (windows drives) when this filepath is meant to be used as repository name
- A path that is neither an http URL nor a local file is an ssh-path.
Examples:
/usr/repo/foo -- local file c:/src/darcs -- local file http://darcs.net/ -- URL peter@host:/path -- ssh droundy@host: -- ssh host:/path -- ssh
This means that single-letter hosts in ssh-paths do not work, unless a username is provided.
Perhaps ssh-paths should use "ssh://user@host/path"
-syntax instead?
TODO: This whole module should be re-written using a regex matching library! The way we do this here is error-prone and inefficient.
Synopsis
- isValidLocalPath :: String -> Bool
- isHttpUrl :: String -> Bool
- isSshUrl :: String -> Bool
- isRelative :: String -> Bool
- isAbsolute :: String -> Bool
- isSshNopath :: String -> Bool
- data SshFilePath
- sshRepo :: SshFilePath -> String
- sshUhost :: SshFilePath -> String
- sshFile :: SshFilePath -> String
- sshFilePathOf :: SshFilePath -> String
- splitSshUrl :: String -> SshFilePath
- sshCanonRepo :: SshFilePath -> String
Documentation
isValidLocalPath :: String -> Bool Source #
isRelative :: String -> Bool Source #
isAbsolute :: String -> Bool Source #
isSshNopath :: String -> Bool Source #
data SshFilePath Source #
sshRepo :: SshFilePath -> String Source #
sshUhost :: SshFilePath -> String Source #
sshFile :: SshFilePath -> String Source #
sshFilePathOf :: SshFilePath -> String Source #
splitSshUrl :: String -> SshFilePath Source #
Given an ssh URL or file path, split it into user@host, repodir, and the file (with any _darcs/ prefix removed)
sshCanonRepo :: SshFilePath -> String Source #
Return a canonical representation of an SSH repo in the format uhost:path Notably, this means the returned string does not contain: - an "ssh://" prefix - any redundant slashes (including all trailing ones)