psibi / tldr-hs

Haskell tldr client
BSD 3-Clause "New" or "Revised" License
92 stars 14 forks source link

Remove duplicate initialisation checks #13

Closed ghost closed 5 years ago

ghost commented 5 years ago

initializeTldrPages, in app/Main.hs, contains two sequential initialisation checks (calls to tldrInitialized):

initializeTldrPages :: IO ()
initializeTldrPages = do
  initialized <- tldrInitialized
  initialized <- tldrInitialized
  unless initialized $ do
    homeDir <- getHomeDirectory
    let cloneDir = homeDir </> tldrDirName
    runProcess_ $ proc "mkdir" [cloneDir]
    runProcess_ $ setWorkingDir cloneDir $ proc "git" ["clone", repoHttpsUrl]

I was very confused as to why this is necessary and have come to the conclusion that it is a simple typo. Hence, the goal of this PR is to improve the comprehensibility of this function's definition by removing the duplicate initialisation check. The result is:

initializeTldrPages :: IO ()
initializeTldrPages = do
  initialized <- tldrInitialized
  unless initialized $ do
    homeDir <- getHomeDirectory
    let cloneDir = homeDir </> tldrDirName
    runProcess_ $ proc "mkdir" [cloneDir]
    runProcess_ $ setWorkingDir cloneDir $ proc "git" ["clone", repoHttpsUrl]

This successfully compiles and runs on my Ubuntu 18.04.1 machine, with stack 1.7.1.

psibi commented 5 years ago

Thanks!

psibi commented 5 years ago

@Kove-W-O-Salter Released a new version with your fix. Thanks!

ghost commented 5 years ago

Thank you. I'm glad that I could help.