Clean up imports.
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 15 Dec 2013 00:14:27 +0000 (19:14 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 15 Dec 2013 00:14:27 +0000 (19:14 -0500)
12 files changed:
src/CommandLine.hs
src/Configuration.hs
src/ExitCodes.hs
src/Html.hs
src/Mail.hs
src/Main.hs
src/OptionalConfiguration.hs
src/StringUtils.hs
src/Twitter/Http.hs
src/Twitter/Status.hs
src/Twitter/User.hs
src/Usernames.hs

index 862f9cd9ad92200bd698a41cccbad83f03040230..65054fe959902fab46f98c5b9112a7ac195d5c62 100644 (file)
@@ -1,6 +1,6 @@
 module CommandLine (
   get_args,
-  show_help)
+  show_help )
 where
 
 import System.Console.CmdArgs (
@@ -15,14 +15,14 @@ import System.Console.CmdArgs (
   program,
   summary,
   typ,
-  versionArg)
+  versionArg )
 import System.Environment (withArgs)
 
 -- Get the version from Cabal.
 import Paths_halcyon (version)
 import Data.Version (showVersion)
 
-import OptionalConfiguration
+import OptionalConfiguration ( OptionalCfg(..) )
 
 description :: String
 description =
index 095f5395f6bf7b6d0e4994ece60f453df1e5b614..786586557226406b8828e644228f3cb03204d290 100644 (file)
@@ -6,12 +6,11 @@
 module Configuration (
   Cfg(..),
   default_config,
-  merge_optional
-)
+  merge_optional )
 where
 
-import qualified OptionalConfiguration as OC
-import Usernames
+import qualified OptionalConfiguration as OC ( OptionalCfg(..) )
+import Usernames ( Usernames(..) )
 
 data Cfg =
   Cfg { consumer_key :: String,
index 653b1c98c94a0d18f3c044302461d4166ba82f31..7597a54723e0fa28d466f195f5161e60698ea3c4 100644 (file)
@@ -1,17 +1,9 @@
--- |All exit codes that the program can return (excepting
--- ExitSuccess). There's only one, since the program will try and fail
--- forever upon errors.
-module ExitCodes (
-  exit_args_parse_failed,
-  exit_no_usernames
-  )
+-- | All exit codes that the program can return (excepting
+--   ExitSuccess).
+module ExitCodes ( exit_no_usernames )
 where
 
--- |Indicates that the command-line arguments could not be parsed.
-exit_args_parse_failed :: Int
-exit_args_parse_failed = 1
-
 -- | No usernames found on either the command-line or in a config
 --   file.
 exit_no_usernames :: Int
-exit_no_usernames = 2
+exit_no_usernames = 1
index 01004cf556b01f3dde21fd8b9585b82732c5b009..f1671a8e57f0fb0401ec7cea8ec5d765a42a6ba3 100644 (file)
@@ -1,13 +1,12 @@
 module Html (
   html_tests,
-  replace_entities
-  )
+  replace_entities )
 where
 
-import Test.Framework (Test, testGroup)
-import Test.Framework.Providers.HUnit (testCase)
-import Test.HUnit (Assertion, assertEqual)
-import Text.HTML.TagSoup.Entity (lookupEntity)
+import Test.Framework ( Test, testGroup )
+import Test.Framework.Providers.HUnit ( testCase )
+import Test.HUnit ( Assertion, assertEqual )
+import Text.HTML.TagSoup.Entity ( lookupEntity )
 
 replace_entities :: String -> String
 replace_entities [] = []
index ecfa2af93b54fad18d8dabfb3877778c7175ae31..3f519ccd8f0d0e22714a248a6595af378ca947eb 100644 (file)
@@ -5,19 +5,18 @@ module Mail (
   default_headers,
   print_sendmail_result,
   rfc822_now,
-  sendmail
-  )
+  sendmail )
 where
 
-import Control.Concurrent
-import Control.Exception (evaluate)
-import Control.Monad (liftM)
-import Data.List (intercalate)
-import Data.Time (formatTime, getZonedTime)
-import System.Exit
-import System.Locale (defaultTimeLocale, rfc822DateFormat)
-import System.Process
-import System.IO (hClose, hGetContents, hPutStr)
+import Control.Concurrent ( forkIO, newEmptyMVar, putMVar, readMVar )
+import Control.Exception ( evaluate )
+import Control.Monad ( liftM )
+import Data.List ( intercalate )
+import Data.Time ( formatTime, getZonedTime )
+import System.Exit ( ExitCode(..) )
+import System.Locale ( defaultTimeLocale, rfc822DateFormat )
+import System.Process ( runInteractiveProcess, waitForProcess )
+import System.IO ( hClose, hGetContents, hPutStr )
 
 
 type Header = String
index 17442f4571635d7363f4ebf5e336bace3e83d0b4..b7d7f716a32722431b6d27eee617e9aaa69b31a1 100644 (file)
@@ -1,30 +1,35 @@
 module Main
 where
 
-import Control.Concurrent (forkIO, threadDelay)
-import Control.Monad (forever, when)
-import Data.Aeson (decode)
-import Data.List ((\\))
-import Data.Maybe (fromMaybe, isNothing)
-import Data.Monoid ((<>))
-import Data.Time.LocalTime (TimeZone, getCurrentTimeZone)
-import System.Exit (ExitCode(..), exitWith)
-import System.IO (hPutStrLn, stderr)
-
-import CommandLine
-import Configuration (Cfg(..), default_config, merge_optional)
-import ExitCodes (exit_no_usernames)
-import qualified OptionalConfiguration as OC
+import Control.Concurrent ( forkIO, threadDelay )
+import Control.Monad ( forever, when )
+import Data.Aeson ( decode )
+import Data.List ( (\\) )
+import Data.Maybe ( fromMaybe, isNothing )
+import Data.Monoid ( (<>) )
+import Data.Time.LocalTime ( TimeZone, getCurrentTimeZone )
+import System.Exit ( ExitCode(..), exitWith )
+import System.IO ( hPutStrLn, stderr )
+
+import CommandLine ( get_args, show_help )
+import Configuration ( Cfg(..), default_config, merge_optional )
+import ExitCodes ( exit_no_usernames )
+import qualified OptionalConfiguration as OC ( from_rc )
 import Mail (
   Message(..),
   default_headers,
   print_sendmail_result,
   rfc822_now,
-  sendmail)
-import Twitter.Http
-import Twitter.Status
-import Twitter.User
-import Usernames (Usernames(..))
+  sendmail )
+import Twitter.Http ( get_user_new_statuses, get_user_timeline )
+import Twitter.Status (
+  Status(..),
+  Timeline,
+  get_max_status_id,
+  pretty_print,
+  utc_time_to_rfc822 )
+import Twitter.User ( User(..) )
+import Usernames ( Usernames(..) )
 
 -- | A wrapper around threadDelay which takes seconds instead of
 --   microseconds as its argument.
index 0b5fd0a6b05cc0cd6ba5ee63a6cb3a5c342f0405..607659ea811ce200577ed1a04a645b86ae2a602b 100644 (file)
 
 module OptionalConfiguration (
   OptionalCfg(..),
-  from_rc
-  )
+  from_rc )
 where
 
-import qualified Data.Configurator as DC
+import qualified Data.Configurator as DC (
+  Worth (Optional),
+  load,
+  lookup )
 
-import Data.Data (Data)
-import Data.Maybe (fromMaybe)
-import Data.Monoid (Monoid(..))
-import Data.Typeable (Typeable)
+import Data.Data ( Data )
+import Data.Maybe ( fromMaybe )
+import Data.Monoid ( Monoid(..) )
+import Data.Typeable ( Typeable )
 
-import Usernames
+import Usernames ( Usernames(..) )
 
 
 -- | The same as Cfg, except everything is optional. It's easy to
index 43e42646764c083ae2ddedac22a36b637709ba59..210e230f804060527084e7204fce54c473629765 100644 (file)
@@ -1,13 +1,12 @@
 -- | Miscellaneous functions for manipulating string.
 module StringUtils (
   listify,
-  string_utils_tests
-  )
+  string_utils_tests )
 where
 
-import Test.Framework (Test, testGroup)
-import Test.Framework.Providers.HUnit (testCase)
-import Test.HUnit (Assertion, assertEqual)
+import Test.Framework ( Test, testGroup )
+import Test.Framework.Providers.HUnit ( testCase )
+import Test.HUnit ( Assertion, assertEqual )
 
 
 -- | Takes a list of strings, call them string1, string2, etc. and
index 14d156395426eed5bf40af35942ec220aa646762..e3bb9fcc96ea3b90c2077b977a06d6cadb904063 100644 (file)
@@ -1,29 +1,27 @@
 module Twitter.Http (
   get_user_new_statuses,
   get_user_timeline,
-  http_get
-  )
+  http_get )
 where
 
-import qualified Data.ByteString.Lazy as B
-import qualified Data.ByteString.Char8 as BC
+import qualified Data.ByteString.Lazy as B ( ByteString )
+import qualified Data.ByteString.Char8 as BC ( pack )
 import Network.HTTP.Client (
   httpLbs,
   newManager,
   parseUrl,
-  responseBody)
-import Network.HTTP.Client.TLS (
-  tlsManagerSettings)
+  responseBody )
+import Network.HTTP.Client.TLS ( tlsManagerSettings )
 import Web.Authenticate.OAuth (
   OAuth(..),
   Credential,
   newCredential,
   newOAuth,
-  signOAuth)
+  signOAuth )
 
-import Configuration (Cfg(..))
+import Configuration ( Cfg(..) )
 
--- |The API URL of username's timeline.
+-- | The API URL of username's timeline.
 --
 -- See,
 --
index 92cf899fae1786562ad96b0c7e7a98ac5915e645..6238b684deffecd9094f2383069f739c179ae468 100644 (file)
@@ -7,29 +7,29 @@ module Twitter.Status (
   get_max_status_id,
   pretty_print,
   status_tests,
-  utc_time_to_rfc822)
+  utc_time_to_rfc822 )
 where
 
-import Control.Applicative ((<$>), (<*>))
-import Control.Monad (liftM)
-import Data.Aeson ((.:), FromJSON(..), Value(Object))
-import Data.Maybe (mapMaybe, isJust)
-import Data.Monoid (mempty)
-import Data.String.Utils (join, splitWs)
-import Data.Text (pack)
-import Data.Time (formatTime)
-import Data.Time.Clock (UTCTime)
-import Data.Time.Format (parseTime)
-import Data.Time.LocalTime (TimeZone, utcToZonedTime)
-import System.Locale (defaultTimeLocale, rfc822DateFormat)
-import Test.Framework (Test, testGroup)
-import Test.Framework.Providers.HUnit (testCase)
-import Test.HUnit (Assertion, assertEqual)
-import Text.Regex (matchRegex, mkRegex)
-
-import Html (replace_entities)
-import StringUtils (listify)
-import Twitter.User (User(..), screen_name_to_timeline_url)
+import Control.Applicative ( (<$>), (<*>) )
+import Control.Monad ( liftM )
+import Data.Aeson ( (.:), FromJSON(..), Value(Object) )
+import Data.Maybe ( mapMaybe, isJust )
+import Data.Monoid ( mempty )
+import Data.String.Utils ( join, splitWs )
+import Data.Text ( pack )
+import Data.Time ( formatTime )
+import Data.Time.Clock ( UTCTime )
+import Data.Time.Format ( parseTime )
+import Data.Time.LocalTime ( TimeZone, utcToZonedTime )
+import System.Locale ( defaultTimeLocale, rfc822DateFormat )
+import Test.Framework ( Test, testGroup )
+import Test.Framework.Providers.HUnit ( testCase )
+import Test.HUnit ( Assertion, assertEqual )
+import Text.Regex ( matchRegex, mkRegex )
+
+import Html ( replace_entities )
+import StringUtils ( listify )
+import Twitter.User ( User(..), screen_name_to_timeline_url )
 
 data Status = Status {
   created_at :: Maybe UTCTime,
index 988cf3c65b46f258991e5161f3344e8482263c22..071b0633695f22a1162835d7105cd20c05516e14 100644 (file)
@@ -1,14 +1,13 @@
 -- | Functions and data for working with Twitter users.
 module Twitter.User (
   User(..),
-  screen_name_to_timeline_url
-  )
+  screen_name_to_timeline_url )
 where
 
-import Control.Applicative ((<$>))
-import Data.Aeson ((.:), FromJSON(..), Value(Object))
-import Data.Text (pack)
-import Data.Monoid (mempty)
+import Control.Applicative ( (<$>) )
+import Data.Aeson ( (.:), FromJSON(..), Value(Object) )
+import Data.Text ( pack )
+import Data.Monoid ( mempty )
 
 -- | Represents a Twitter user, and contains the only attribute
 --   thereof that we care about: the screen (user) name.
index 6f2fb2874108bd436a18ad0aedde8ad4db5112a3..92e5c4376f77fc2416044941ee3457f0597727cc 100644 (file)
@@ -4,15 +4,15 @@
 --   to watch. This is all to avoid an orphan instance of Configured
 --   for [String] if we had defined one in e.g. OptionalConfiguration.
 --
-module Usernames
+module Usernames ( Usernames(..) )
 where
 
 -- DC is needed only for the DCT.Configured instance of String.
 import qualified Data.Configurator as DC()
 import qualified Data.Configurator.Types as DCT
-import Data.Data (Data)
-import System.Console.CmdArgs.Default (Default(..))
-import Data.Typeable (Typeable)
+import Data.Data ( Data )
+import System.Console.CmdArgs.Default ( Default(..) )
+import Data.Typeable ( Typeable )
 
 
 newtype Usernames =