module Hi.Git
(
clone
, lsFiles
, expandUrl
) where
import Hi.Types
import Hi.Utils
import Control.Applicative
import Data.List (isPrefixOf)
import System.Exit (ExitCode)
import System.Process (readProcess, system)
expandUrl :: String -> String
expandUrl url = if "gh:" `isPrefixOf` url
then expand url
else url
where expand (_:_:_:xs) = "git@github.com:" ++ xs ++ ".git"
clone :: String -> IO ExitCode
clone repoUrl = do
_ <- system $ "git clone --no-checkout --quiet --depth=1 " ++ repoUrl ++ " " ++ "./"
system "git checkout HEAD --quiet"
lsFiles :: IO [String]
lsFiles = lines <$> readProcess "git" ["ls-files"] []