Skip to content

Commit

Permalink
Remove 'Options' from shared Types module
Browse files Browse the repository at this point in the history
Only needed at compiletime, were being hidden everywhere else already.
  • Loading branch information
DanielG committed Sep 25, 2017
1 parent fb54207 commit f8196cf
Show file tree
Hide file tree
Showing 10 changed files with 73 additions and 37 deletions.
2 changes: 1 addition & 1 deletion CabalHelper/Compiletime/Compile.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion CabalHelper/Compiletime/Data.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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")))
]
2 changes: 1 addition & 1 deletion CabalHelper/Compiletime/Log.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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 =
Expand Down
32 changes: 32 additions & 0 deletions CabalHelper/Compiletime/Types.hs
Original file line number Diff line number Diff line change
@@ -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
3 changes: 2 additions & 1 deletion CabalHelper/Compiletime/Wrapper.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion CabalHelper/Runtime/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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])]
Expand All @@ -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
Expand All @@ -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
2 changes: 1 addition & 1 deletion Distribution/Helper.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
8 changes: 4 additions & 4 deletions cabal-helper.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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: .
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tests/CompileTest.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit f8196cf

Please sign in to comment.