anchor.diff:          printfn ""
   
       let execProcess processName arguments =
  +        printfn "execute: %s %s" processName arguments
  +        
           use proc = new Process()
           proc.StartInfo.UseShellExecute <- false
           proc.StartInfo.FileName <- processName
  
positive.code:         
          let isForced = isBuildForced()
          
          let noPostsGenerated = generatePosts "books.yml" isForced
          
          if not noPostsGenerated
          then
              commitGeneratedPosts
          
  
negative.code:     let generatePosts configFileName isForced = 
          printfn "start posts generation"
          let books = getBooksConfig configFileName
          let postsToGenerate = books |> Seq.exists (fun book -> not book.Generated)
          
          if not postsToGenerate
          then 
              cprintfn ConsoleColor.Green "no posts to generate"
              if not isForced
              then exit 42
  
          createFolderIfNotExists Constants.PostsFolder
          createFolderIfNotExists Constants.ImagesFolder
          let newBooksConfig = books |> Seq.map generatePost
          writeConfig configFileName (new List<BookConfig>(Seq.toArray newBooksConfig))
          printfn "end posts generation"
          postsToGenerate
  
      let commitGeneratedPosts =
          execProcess "git" "config --global user.name \"Jérémie Bertrand\""
  