pruneTable :: Handler
pruneTable = Catch $ do
  let args = ["-L", "BLACKLIST", "-n", "-v"]
  (_, Just h, _, _) <- createProcess (proc ipCmd args){ std_out = CreatePipe }
  output <- hGetContents h
  let addresses = rights $ map findNotTooAbusiveAddress (lines output)  -- :: [Address]
  forM_ (toString <$> addresses) $ \addr -> do
    blindDelete addr
    liftBan addr
pruneTable :: Handler
pruneTable = Catch $ do
  let args = ["-L", "BLACKLIST", "-n", "-v"]
  (_, Just h, _, _) <- createProcess (proc ipCmd args){ std_out = CreatePipe }
  output <- hGetContents h
  let addresses = rights $ map findNotTooAbusiveAddress (lines output)  -- :: [Address]
  forM_ (toString <$> addresses) $ \addr -> do
    blindDelete addr
    liftBan addr
pruneTable = Catch $ do
  let args = ["-L", "BLACKLIST", "-n", "-v"]
  (_, Just h, _, _) <- createProcess (proc ipCmd args){ std_out = CreatePipe }
  output <- hGetContents h
  let addresses = rights $ map findNotTooAbusiveAddress (lines output)  -- :: [Address]
  forM_ (toString <$> addresses) $ \addr -> do
    blindDelete addr
    liftBan addr