module Main (main) where import Utils.ThankYouStars.GitHub import Utils.ThankYouStars.Package import qualified Data.Set as S import System.Exit ( die ) import System.Directory ( getHomeDirectory ) import System.FilePath ( joinPath ) main :: IO () main = do homeDir <- getHomeDirectory let tokenFile = joinPath [homeDir, ".thank-you-stars.json"] eToken <- readToken tokenFile case eToken of Left _ -> do die ("Cannot parse " ++ show tokenFile ++ " into a token") Right token -> do db <- readStackIndex cabals <- getCabalFiles descs <- mapM readCabalFile $ S.toList cabals let repos = S.unions $ map (dependentRepos db) descs mapM_ (starAction token) repos starAction :: Token -> GitHubRepo -> IO () starAction token ghr = do eResult <- starRepo token ghr case eResult of Left _ -> putStrLn $ "Error " ++ show ghr Right () -> putStrLn $ "Starred! " ++ show ghr