diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-01-05 17:33:48 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-01-05 17:33:48 -0400 |
commit | 8728cd00ff2e9b9c40325a7e700ab25644bb347b (patch) | |
tree | 520b0971ba120e8c4f92bfd724edbc1f21d3ae79 | |
parent | 903241502a6ad1a4845ac2d131ef7fc2b547400d (diff) |
clarify absPathFrom
The repo path is typically relative, not absolute, so
providing it to absPathFrom doesn't yield an absolute path.
This is not a bug, just unclear documentation.
Indeed, there seem to be no reason to simplifyPath here, which absPathFrom
does, so instead just combine the repo path and the TopFilePath.
Also, removed an export of the TopFilePath constructor; asTopFilePath
is provided to construct one as-is.
-rw-r--r-- | Database/Keys.hs | 2 | ||||
-rw-r--r-- | Git/FilePath.hs | 7 | ||||
-rw-r--r-- | Utility/Path.hs | 2 |
3 files changed, 6 insertions, 5 deletions
diff --git a/Database/Keys.hs b/Database/Keys.hs index 8cea5c940..38d9742df 100644 --- a/Database/Keys.hs +++ b/Database/Keys.hs @@ -188,7 +188,7 @@ getAssociatedFiles' sk = readDb $ do l <- select $ from $ \r -> do where_ (r ^. AssociatedKey ==. val sk) return (r ^. AssociatedFile) - return $ map (TopFilePath . unValue) l + return $ map (asTopFilePath . unValue) l {- Gets any keys that are on record as having a particular associated file. - (Should be one or none but the database doesn't enforce that.) -} diff --git a/Git/FilePath.hs b/Git/FilePath.hs index 7e7d86bb4..2085f287b 100644 --- a/Git/FilePath.hs +++ b/Git/FilePath.hs @@ -13,7 +13,8 @@ {-# LANGUAGE CPP #-} module Git.FilePath ( - TopFilePath(..), + TopFilePath, + getTopFilePath, fromTopFilePath, toTopFilePath, asTopFilePath, @@ -32,9 +33,9 @@ import qualified System.FilePath.Posix newtype TopFilePath = TopFilePath { getTopFilePath :: FilePath } deriving (Show) -{- Returns an absolute FilePath. -} +{- Path to a TopFilePath, within the provided git repo. -} fromTopFilePath :: TopFilePath -> Git.Repo -> FilePath -fromTopFilePath p repo = absPathFrom (repoPath repo) (getTopFilePath p) +fromTopFilePath p repo = combine (repoPath repo) (getTopFilePath p) {- The input FilePath can be absolute, or relative to the CWD. -} toTopFilePath :: FilePath -> Git.Repo -> IO TopFilePath diff --git a/Utility/Path.hs b/Utility/Path.hs index f3290d8d9..2f7802048 100644 --- a/Utility/Path.hs +++ b/Utility/Path.hs @@ -60,7 +60,7 @@ simplifyPath path = dropTrailingPathSeparator $ {- Makes a path absolute. - - The first parameter is a base directory (ie, the cwd) to use if the path - - is not already absolute. + - is not already absolute, and should itsef be absolute. - - Does not attempt to deal with edge cases or ensure security with - untrusted inputs. |