authbanner :: Args -> IO ()
authbanner (Args filename offset) = do
  pid <- show <$> getProcessID
  hSetBuffering stdout LineBuffering
  putStrLn $ headerText (Just pid)
  putStrLn copyText
  putStrLn "Initializing database"
  initDatabase
  putStrLn "Installing SIGHUP handler"
  installHandler sigHUP pruneTable Nothing
  putStrLn "Following log file"
  tailf filename offset (banOrElse . findAbusiveAddress)
authbanner :: Args -> IO ()
authbanner (Args filename offset) = do
  pid <- show <$> getProcessID
  hSetBuffering stdout LineBuffering
  putStrLn $ headerText (Just pid)
  putStrLn copyText
  putStrLn "Initializing database"
  initDatabase
  putStrLn "Installing SIGHUP handler"
  installHandler sigHUP pruneTable Nothing
  putStrLn "Following log file"
  tailf filename offset (banOrElse . findAbusiveAddress)
authbanner (Args filename offset) = do
  pid <- show <$> getProcessID
  hSetBuffering stdout LineBuffering
  putStrLn $ headerText (Just pid)
  putStrLn copyText
  putStrLn "Initializing database"
  initDatabase
  putStrLn "Installing SIGHUP handler"
  installHandler sigHUP pruneTable Nothing
  putStrLn "Following log file"
  tailf filename offset (banOrElse . findAbusiveAddress)