aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gröber <dxld@darkboxed.org>2017-09-25 10:45:03 +0200
committerDaniel Gröber <dxld@darkboxed.org>2017-09-25 13:11:28 +0200
commitb42f9095993f5862d4450a84f6cf535b7a252d48 (patch)
tree4b55984dd1258a9bb9c6cb950834961bd2a10524
parent373a468190a393fa2f7cf3851f1050dc6bf5bea1 (diff)
Remove 'Options' from shared Types module
Only needed at compiletime, were being hidden everywhere else already.
-rw-r--r--CabalHelper/Compiletime/Compile.hs2
-rw-r--r--CabalHelper/Compiletime/Data.hs2
-rw-r--r--CabalHelper/Compiletime/Log.hs2
-rw-r--r--CabalHelper/Compiletime/Types.hs32
-rw-r--r--CabalHelper/Compiletime/Wrapper.hs3
-rw-r--r--CabalHelper/Runtime/Main.hs2
-rw-r--r--CabalHelper/Shared/InterfaceTypes.hs (renamed from CabalHelper/Shared/Types.hs)55
-rw-r--r--Distribution/Helper.hs2
-rw-r--r--cabal-helper.cabal8
-rw-r--r--tests/CompileTest.hs2
10 files changed, 73 insertions, 37 deletions
diff --git a/CabalHelper/Compiletime/Compile.hs b/CabalHelper/Compiletime/Compile.hs
index 1c28903..dfa52a0 100644
--- a/CabalHelper/Compiletime/Compile.hs
+++ b/CabalHelper/Compiletime/Compile.hs
@@ -43,9 +43,9 @@ import Distribution.Text (display)
import Paths_cabal_helper (version)
import CabalHelper.Compiletime.Data
import CabalHelper.Compiletime.Log
+import CabalHelper.Compiletime.Types
import CabalHelper.Shared.Common
import CabalHelper.Shared.Sandbox (getSandboxPkgDb)
-import CabalHelper.Shared.Types
data Compile = Compile {
compCabalSourceDir :: Maybe FilePath,
diff --git a/CabalHelper/Compiletime/Data.hs b/CabalHelper/Compiletime/Data.hs
index 9539ef3..6b096d7 100644
--- a/CabalHelper/Compiletime/Data.hs
+++ b/CabalHelper/Compiletime/Data.hs
@@ -76,5 +76,5 @@ sourceFiles =
, ("Runtime/Licenses.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Runtime/Licenses.hs")))
, ("Shared/Common.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Shared/Common.hs")))
, ("Shared/Sandbox.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Shared/Sandbox.hs")))
- , ("Shared/Types.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Shared/Types.hs")))
+ , ("Shared/InterfaceTypes.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Shared/InterfaceTypes.hs")))
]
diff --git a/CabalHelper/Compiletime/Log.hs b/CabalHelper/Compiletime/Log.hs
index e4033f1..6931fa9 100644
--- a/CabalHelper/Compiletime/Log.hs
+++ b/CabalHelper/Compiletime/Log.hs
@@ -7,7 +7,7 @@ import Data.String
import System.IO
import Prelude
-import CabalHelper.Shared.Types
+import CabalHelper.Compiletime.Types
vLog :: MonadIO m => Options -> String -> m ()
vLog Options { verbose = True } msg =
diff --git a/CabalHelper/Compiletime/Types.hs b/CabalHelper/Compiletime/Types.hs
new file mode 100644
index 0000000..138baa7
--- /dev/null
+++ b/CabalHelper/Compiletime/Types.hs
@@ -0,0 +1,32 @@
+-- cabal-helper: Simple interface to Cabal's configuration state
+-- Copyright (C) 2015 Daniel Gröber <dxld ÄT darkboxed DOT org>
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU Affero General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU Affero General Public License for more details.
+--
+-- You should have received a copy of the GNU Affero General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+{-# LANGUAGE DeriveGeneric, DeriveDataTypeable, DefaultSignatures #-}
+module CabalHelper.Compiletime.Types where
+
+import Data.Version
+
+data Options = Options {
+ verbose :: Bool
+ , ghcProgram :: FilePath
+ , ghcPkgProgram :: FilePath
+ , cabalProgram :: FilePath
+ , cabalVersion :: Maybe Version
+ , cabalPkgDb :: Maybe FilePath
+}
+
+defaultOptions :: Options
+defaultOptions = Options False "ghc" "ghc-pkg" "cabal" Nothing Nothing
diff --git a/CabalHelper/Compiletime/Wrapper.hs b/CabalHelper/Compiletime/Wrapper.hs
index dccbc29..7325654 100644
--- a/CabalHelper/Compiletime/Wrapper.hs
+++ b/CabalHelper/Compiletime/Wrapper.hs
@@ -42,8 +42,9 @@ import Paths_cabal_helper (version)
import CabalHelper.Compiletime.Compat.Version
import CabalHelper.Compiletime.Compile
import CabalHelper.Compiletime.GuessGhc
+import CabalHelper.Compiletime.Types
import CabalHelper.Shared.Common
-import CabalHelper.Shared.Types
+import CabalHelper.Shared.InterfaceTypes
usage :: IO ()
usage = do
diff --git a/CabalHelper/Runtime/Main.hs b/CabalHelper/Runtime/Main.hs
index 570cf58..c7f6652 100644
--- a/CabalHelper/Runtime/Main.hs
+++ b/CabalHelper/Runtime/Main.hs
@@ -122,7 +122,7 @@ import Text.Printf
import CabalHelper.Shared.Sandbox
import CabalHelper.Shared.Common
-import CabalHelper.Shared.Types hiding (Options(..))
+import CabalHelper.Shared.InterfaceTypes
import CabalHelper.Runtime.Licenses
diff --git a/CabalHelper/Shared/Types.hs b/CabalHelper/Shared/InterfaceTypes.hs
index 18d532b..88858d0 100644
--- a/CabalHelper/Shared/Types.hs
+++ b/CabalHelper/Shared/InterfaceTypes.hs
@@ -1,5 +1,5 @@
-- cabal-helper: Simple interface to Cabal's configuration state
--- Copyright (C) 2015 Daniel Gröber <dxld ÄT darkboxed DOT org>
+-- Copyright (C) 2015,2017 Daniel Gröber <dxld ÄT darkboxed DOT org>
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU Affero General Public License as published by
@@ -15,22 +15,25 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
{-# LANGUAGE DeriveGeneric, DeriveDataTypeable, DefaultSignatures #-}
-module CabalHelper.Shared.Types where
-import GHC.Generics
-import Data.Version
+{-|
+Module : CabalHelper.Shared.InterfaceTypes
+Description : Types which are used by c-h library and executable to communicate
+License : AGPL-3
-newtype ChModuleName = ChModuleName String
- deriving (Eq, Ord, Read, Show, Generic)
+These types are used to communicate between the cabal-helper library and main
+executable, using Show/Read. If any types in this module change the major
+version must be bumped since this will be exposed in the @Distribution.Helper@
+module.
-data ChComponentName = ChSetupHsName
- | ChLibName
- | ChSubLibName String
- | ChFLibName String
- | ChExeName String
- | ChTestName String
- | ChBenchName String
- deriving (Eq, Ord, Read, Show, Generic)
+The cached executables in @$XDG_CACHE_DIR/cabal-helper@ use the cabal-helper
+version (among other things) as a cache key so we don't need to worry about
+talking to an old executable.
+-}
+module CabalHelper.Shared.InterfaceTypes where
+
+import GHC.Generics
+import Data.Version
data ChResponse
= ChResponseCompList [(ChComponentName, [String])]
@@ -43,6 +46,18 @@ data ChResponse
| ChResponseFlags [(String, Bool)]
deriving (Eq, Ord, Read, Show, Generic)
+data ChComponentName = ChSetupHsName
+ | ChLibName
+ | ChSubLibName String
+ | ChFLibName String
+ | ChExeName String
+ | ChTestName String
+ | ChBenchName String
+ deriving (Eq, Ord, Read, Show, Generic)
+
+newtype ChModuleName = ChModuleName String
+ deriving (Eq, Ord, Read, Show, Generic)
+
data ChEntrypoint = ChSetupEntrypoint -- ^ Almost like 'ChExeEntrypoint' but
-- @main-is@ could either be @"Setup.hs"@
-- or @"Setup.lhs"@. Since we don't know
@@ -59,15 +74,3 @@ data ChPkgDb = ChPkgGlobal
| ChPkgUser
| ChPkgSpecific FilePath
deriving (Eq, Ord, Read, Show, Generic)
-
-data Options = Options {
- verbose :: Bool
- , ghcProgram :: FilePath
- , ghcPkgProgram :: FilePath
- , cabalProgram :: FilePath
- , cabalVersion :: Maybe Version
- , cabalPkgDb :: Maybe FilePath
-}
-
-defaultOptions :: Options
-defaultOptions = Options False "ghc" "ghc-pkg" "cabal" Nothing Nothing
diff --git a/Distribution/Helper.hs b/Distribution/Helper.hs
index 7bd76e9..6c31208 100644
--- a/Distribution/Helper.hs
+++ b/Distribution/Helper.hs
@@ -96,7 +96,7 @@ import GHC.Generics
import Prelude
import Paths_cabal_helper (getLibexecDir)
-import CabalHelper.Shared.Types hiding (Options(..))
+import CabalHelper.Shared.InterfaceTypes
import CabalHelper.Shared.Sandbox
-- | Paths or names of various programs we need.
diff --git a/cabal-helper.cabal b/cabal-helper.cabal
index 31d3aca..a205290 100644
--- a/cabal-helper.cabal
+++ b/cabal-helper.cabal
@@ -57,8 +57,8 @@ library
default-extensions: NondecreasingIndentation
exposed-modules: Distribution.Helper
other-modules:
+ CabalHelper.Shared.InterfaceTypes
CabalHelper.Shared.Sandbox
- CabalHelper.Shared.Types
Paths_cabal_helper
ghc-options: -Wall
build-depends: base < 5 && >= 4.5
@@ -82,9 +82,9 @@ executable cabal-helper-wrapper
CabalHelper.Compiletime.Data
CabalHelper.Compiletime.GuessGhc
CabalHelper.Compiletime.Log
+ CabalHelper.Compiletime.Types
CabalHelper.Shared.Common
CabalHelper.Shared.Sandbox
- CabalHelper.Shared.Types
Paths_cabal_helper
ghc-options: -Wall
scope: private
@@ -116,9 +116,9 @@ test-suite compile-test
CabalHelper.Compiletime.Compile
CabalHelper.Compiletime.Data
CabalHelper.Compiletime.Log
+ CabalHelper.Compiletime.Types
CabalHelper.Shared.Common
CabalHelper.Shared.Sandbox
- CabalHelper.Shared.Types
Distribution.Helper
Paths_cabal_helper
hs-source-dirs: .
@@ -157,8 +157,8 @@ executable cabal-helper-main
other-modules:
CabalHelper.Runtime.Licenses
CabalHelper.Shared.Common
+ CabalHelper.Shared.InterfaceTypes
CabalHelper.Shared.Sandbox
- CabalHelper.Shared.Types
ghc-options: -Wall -fno-warn-unused-imports
build-depends: base
, Cabal
diff --git a/tests/CompileTest.hs b/tests/CompileTest.hs
index 4d22b67..b408788 100644
--- a/tests/CompileTest.hs
+++ b/tests/CompileTest.hs
@@ -18,8 +18,8 @@ import Prelude
import CabalHelper.Compiletime.Compat.Environment
import CabalHelper.Compiletime.Compat.Version
import CabalHelper.Compiletime.Compile
+import CabalHelper.Compiletime.Types
import CabalHelper.Shared.Common
-import CabalHelper.Shared.Types
runReadP'Dist :: Dist.ReadP t t -> String -> t
runReadP'Dist p i = case filter ((=="") . snd) $ Dist.readP_to_S p i of