aboutsummaryrefslogtreecommitdiff
path: root/CabalHelper
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 /CabalHelper
parent373a468190a393fa2f7cf3851f1050dc6bf5bea1 (diff)
Remove 'Options' from shared Types module
Only needed at compiletime, were being hidden everywhere else already.
Diffstat (limited to 'CabalHelper')
-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
7 files changed, 67 insertions, 31 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