diff options
author | Richard Hartmann <richih@debian.org> | 2015-12-16 07:23:53 +0100 |
---|---|---|
committer | Richard Hartmann <richih@debian.org> | 2015-12-16 07:23:53 +0100 |
commit | 53679fdc47d9470c2540fbe38d5de38c91c3bb01 (patch) | |
tree | e3151adb4d04e905dbb930b67cdb959fac5ea513 /Git/LsTree.hs | |
parent | c94e89d797b15833875ebeb6adcaa6e130315f8e (diff) | |
parent | 259c511a17669d043a573344e59eae9e9956265c (diff) | |
download | git-repair-53679fdc47d9470c2540fbe38d5de38c91c3bb01.tar.gz |
Merge tag '1.20151215' into debian
tagging package git-repair version 1.20151215
Diffstat (limited to 'Git/LsTree.hs')
-rw-r--r-- | Git/LsTree.hs | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/Git/LsTree.hs b/Git/LsTree.hs index ca5e323..1ed6247 100644 --- a/Git/LsTree.hs +++ b/Git/LsTree.hs @@ -1,6 +1,6 @@ {- git ls-tree interface - - - Copyright 2011 Joey Hess <joey@kitenet.net> + - Copyright 2011 Joey Hess <id@joeyh.name> - - Licensed under the GNU GPL version 3 or higher. -} @@ -13,10 +13,6 @@ module Git.LsTree ( parseLsTree ) where -import Numeric -import Control.Applicative -import System.Posix.Types - import Common import Git import Git.Command @@ -24,6 +20,9 @@ import Git.Sha import Git.FilePath import qualified Git.Filename +import Numeric +import System.Posix.Types + data TreeItem = TreeItem { mode :: FileMode , typeobj :: String @@ -35,16 +34,30 @@ data TreeItem = TreeItem - with lazy output. -} lsTree :: Ref -> Repo -> IO [TreeItem] lsTree t repo = map parseLsTree - <$> pipeNullSplitZombie (lsTreeParams t) repo + <$> pipeNullSplitZombie (lsTreeParams t []) repo -lsTreeParams :: Ref -> [CommandParam] -lsTreeParams t = [ Params "ls-tree --full-tree -z -r --", File $ fromRef t ] +lsTreeParams :: Ref -> [CommandParam] -> [CommandParam] +lsTreeParams r ps = + [ Param "ls-tree" + , Param "--full-tree" + , Param "-z" + , Param "-r" + ] ++ ps ++ + [ Param "--" + , File $ fromRef r + ] {- Lists specified files in a tree. -} lsTreeFiles :: Ref -> [FilePath] -> Repo -> IO [TreeItem] lsTreeFiles t fs repo = map parseLsTree <$> pipeNullSplitStrict ps repo where - ps = [Params "ls-tree --full-tree -z --", File $ fromRef t] ++ map File fs + ps = + [ Param "ls-tree" + , Param "--full-tree" + , Param "-z" + , Param "--" + , File $ fromRef t + ] ++ map File fs {- Parses a line of ls-tree output. - (The --long format is not currently supported.) -} |