-import Data.Maybe (fromJust)
-import System.Console.CmdArgs (cmdArgsRun)
-
-import Text.XML.HXT.Core
-
-
-import CommandLine (Args(..), apply_args)
-import Epublishable
-import LWN.ArticlePage
-import LWN.FullPage
-
-my_read :: String -> IOStateArrow s b XmlTree
-my_read =
- readDocument [ withValidate no,
- withParseHTML yes,
- withInputEncoding utf8,
- withWarnings no ]
+import Control.Concurrent.ParallelIO (stopGlobalPool)
+import System.Directory (doesFileExist)
+import System.IO (
+ Handle,
+ IOMode (WriteMode),
+ openBinaryFile,
+ stdout)
+
+import CommandLine (show_help)
+import Configuration (Cfg(..), get_cfg)
+import LWN.Article (real_article_path)
+import LWN.HTTP (get_login_cookie)
+import LWN.Page (epublish, page_from_url)
+
+
+-- | If we're given an empty path, return a handle to
+-- 'stdout'. Otherwise, open the given file and return a read/write
+-- handle to that.
+get_output_handle :: FilePath -> IO Handle
+get_output_handle path =
+ if (null path) then
+ return stdout
+ else
+ openBinaryFile path WriteMode
+
+
+argument_is_file :: Cfg -> IO Bool
+argument_is_file cfg = do
+ path <- real_article_path (article cfg)
+ doesFileExist path