1- module GetContents where
1+ {-# LANGUAGE NoImplicitPrelude #-}
2+ {-# LANGUAGE OverloadedStrings #-}
23
3- import qualified Github.Repos as Github
4- import Data.List
5- import Prelude hiding (truncate , getContents )
4+ module Main where
65
6+ import Common hiding
7+ (getContents , intercalate , take , truncate , unlines )
8+ import Data.Text
9+ (Text , intercalate , pack , take , unlines )
10+ import Data.Text.IO (putStrLn )
11+ import qualified Data.Vector as Vector
12+ import qualified GitHub.Data as GitHub
13+ import qualified GitHub.Endpoints.Repos.Contents as GitHub
14+
15+ main :: IO ()
716main = do
817 putStrLn " Root"
918 putStrLn " ===="
@@ -13,34 +22,37 @@ main = do
1322 putStrLn " ======="
1423 getContents " LICENSE"
1524
25+ getContents :: Text -> IO ()
1626getContents path = do
17- contents <- Github . contentsFor " mike-burns" " ohlaunch" path Nothing
18- putStrLn $ either ((" Error: " ++ ) . show ) formatContents contents
27+ contents <- GitHub . contentsFor " mike-burns" " ohlaunch" path Nothing
28+ putStrLn $ either ((" Error: " <> ) . tshow ) formatContents contents
1929
20- formatContents (Github. ContentFile fileData) =
21- formatContentInfo (Github. contentFileInfo fileData) ++
30+ formatContents :: GitHub. Content -> Text
31+ formatContents (GitHub. ContentFile fileData) =
32+ formatContentInfo (GitHub. contentFileInfo fileData) <>
2233 unlines
23- [ show ( Github . contentFileSize fileData) ++ " bytes"
24- , " encoding: " ++ Github . contentFileEncoding fileData
25- , " data: " ++ truncate (Github . contentFileContent fileData)
34+ [ tshow ( GitHub . contentFileSize fileData) <> " bytes"
35+ , " encoding: " <> GitHub . contentFileEncoding fileData
36+ , " data: " <> truncate (GitHub . contentFileContent fileData)
2637 ]
2738
28- formatContents (Github . ContentDirectory items) =
29- intercalate " \n\n " $ map formatItem items
39+ formatContents (GitHub . ContentDirectory items) =
40+ intercalate " \n\n " . map formatItem . Vector. toList $ items
3041
42+ formatContentInfo :: GitHub. ContentInfo -> Text
3143formatContentInfo contentInfo =
3244 unlines
33- [ " name: " ++ Github . contentName contentInfo
34- , " path: " ++ Github . contentPath contentInfo
35- , " sha: " ++ Github . contentSha contentInfo
36- , " url: " ++ Github. contentUrl contentInfo
37- , " git url: " ++ Github. contentGitUrl contentInfo
38- , " html url: " ++ Github. contentHtmlUrl contentInfo
45+ [ " name: " <> GitHub . contentName contentInfo
46+ , " path: " <> GitHub . contentPath contentInfo
47+ , " sha: " <> GitHub . contentSha contentInfo
48+ , " url: " <> ( GitHub. getUrl . GitHub. contentUrl) contentInfo
49+ , " git url: " <> ( GitHub. getUrl . GitHub. contentGitUrl) contentInfo
50+ , " html url: " <> ( GitHub. getUrl . GitHub. contentHtmlUrl) contentInfo
3951 ]
4052
4153formatItem item =
42- " type: " ++ show ( Github . contentItemType item) ++ " \n " ++
43- formatContentInfo (Github . contentItemInfo item)
54+ " type: " <> tshow ( GitHub . contentItemType item) <> " \n " <>
55+ formatContentInfo (GitHub . contentItemInfo item)
4456
4557
46- truncate str = take 40 str ++ " ... (truncated)"
58+ truncate str = take 40 str <> " ... (truncated)"
0 commit comments