git命令的编程接口

git命令的编程接口,git,haskell,Git,Haskell,我看到了一个关于操纵github回购协议的包的问题,但是在浏览了答案中列出的所有包之后,我看不到一个简单的git add。我基本上只是想用一个shell脚本来模拟我目前在git中所做的事情,但是使用Haskell,所以我不需要直接调用命令行git,也不需要做其他繁琐的事情 这些库似乎是为更低级的git操作而设计的。这是真的还是我遗漏了什么?这可能不是您想要的,但您可以使用外壳导管来实现这一点。它使用模板Haskell为您提供一个名为git的函数,您可以向该函数传递适当的参数 示例工作代码: #!

我看到了一个关于操纵github回购协议的包的问题,但是在浏览了答案中列出的所有包之后,我看不到一个简单的
git add
。我基本上只是想用一个shell脚本来模拟我目前在git中所做的事情,但是使用Haskell,所以我不需要直接调用命令行git,也不需要做其他繁琐的事情


这些库似乎是为更低级的git操作而设计的。这是真的还是我遗漏了什么?

这可能不是您想要的,但您可以使用
外壳导管来实现这一点。它使用模板Haskell为您提供一个名为
git
的函数,您可以向该函数传递适当的参数

示例工作代码:

#!/usr/bin/env stack
{- stack
     --resolver lts-8.5
     --install-ghc
     runghc
     --package shell-conduit-4.6.1
 -}

{-#LANGUAGE ExtendedDefaultRules#-}

import Data.Conduit.Shell

clone :: Segment ()
clone = do
  echo "Going to clone..."
  git "clone" ["--depth", "1", "https://github.com/yesodweb/yesod-cookbook.git"]

main :: IO ()
main = run clone
请注意,上述代码仅适用于
外壳导管
版本>=4.6.0。如果您使用的是旧版本,则无法将列表传递给
git
函数。相反,你必须这样做:

git "clone" "--depth" "1" "https://github.com/yesodweb/yesod-cookbook.git"
新版本接受两种方式


完整免责声明:我是shell导管的当前维护者。

这可能不是您想要的,但您可以使用
shell导管
来完成。它使用模板Haskell为您提供一个名为
git
的函数,您可以向该函数传递适当的参数

示例工作代码:

#!/usr/bin/env stack
{- stack
     --resolver lts-8.5
     --install-ghc
     runghc
     --package shell-conduit-4.6.1
 -}

{-#LANGUAGE ExtendedDefaultRules#-}

import Data.Conduit.Shell

clone :: Segment ()
clone = do
  echo "Going to clone..."
  git "clone" ["--depth", "1", "https://github.com/yesodweb/yesod-cookbook.git"]

main :: IO ()
main = run clone
请注意,上述代码仅适用于
外壳导管
版本>=4.6.0。如果您使用的是旧版本,则无法将列表传递给
git
函数。相反,你必须这样做:

git "clone" "--depth" "1" "https://github.com/yesodweb/yesod-cookbook.git"
新版本接受两种方式


完整免责声明:我是shell导管的当前维护者。

请看一下该软件包,该软件包在提出该问题时并不存在。我实际上是指“git”而不是“github”(我现在编辑了标题),但是的,该软件包可能对我也有用,谢谢!另一种可能是使用Haskell编写shell脚本,而不必费劲。这是我使用它的目的和你描述的完全一样。一个月前我看了一下,很失望。遗憾的是,这与StackOverflow无关。Haskell subreddit可能是一个更适合提问的地方。请看一下该软件包,它在提出该问题时并不存在。我实际上是指“git”而不是“github”(我现在编辑了标题),但是的,该软件包可能对我也有用,谢谢!另一种可能是使用Haskell编写shell脚本,而不必费劲。这是我使用它的目的和你描述的完全一样。一个月前我看了一下,很失望。遗憾的是,这与StackOverflow无关。Haskell subreddit可能是一个更适合提问的地方。