Skip to content

Commit

Permalink
Rearrange modules.
Browse files Browse the repository at this point in the history
Progress towards #42.  Could still stand to rethink the organization of the
`Pier.Build` subfolder.
  • Loading branch information
judah committed Jan 15, 2018
1 parent 0dd0916 commit e9bb1d5
Show file tree
Hide file tree
Showing 12 changed files with 58 additions and 51 deletions.
15 changes: 8 additions & 7 deletions app/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,6 @@ import qualified Data.HashMap.Strict as HM
import Data.List.Split (splitOn)
import Data.Monoid (Last(..))
import Data.Semigroup (Semigroup, (<>))
import Development.Pier.Config
import Development.Pier.Core
import Development.Pier.Command hiding (runCommand)
import Development.Pier.Download
import Development.Pier.Persistent
import Development.Pier.Stackage
import Development.Pier.Build
import Development.Shake hiding (command)
import Development.Shake.FilePath ((</>), takeDirectory, splitFileName)
import Distribution.Package
Expand All @@ -21,6 +14,14 @@ import Options.Applicative hiding (action)
import System.Directory as Directory
import System.Environment

import Pier.Build.Config
import Pier.Build.Stackage
import Pier.Build.Components
import Pier.Core.Run
import Pier.Core.Command hiding (runCommand)
import Pier.Core.Download
import Pier.Core.Persistent

data CommandOpt
= Clean
| CleanAll
Expand Down
14 changes: 7 additions & 7 deletions src/Development/Pier/Build.hs → src/Pier/Build/Components.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{-# LANGUAGE DeriveAnyClass #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Development.Pier.Build
module Pier.Build.Components
( buildPackageRules
, askBuiltLibrary
, askMaybeBuiltLibrary
Expand Down Expand Up @@ -35,12 +35,12 @@ import qualified Data.Set as Set
import Data.Set (Set)
import Language.Haskell.Extension

import Development.Pier.Build.Custom
import Development.Pier.Command
import Development.Pier.Config
import Development.Pier.Package
import Development.Pier.Stackage
import Development.Pier.Persistent
import Pier.Build.Custom
import Pier.Build.Config
import Pier.Build.Package
import Pier.Build.Stackage
import Pier.Core.Command
import Pier.Core.Persistent


buildPackageRules :: Rules ()
Expand Down
12 changes: 6 additions & 6 deletions src/Development/Pier/Config.hs → src/Pier/Build/Config.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
module Development.Pier.Config
module Pier.Build.Config
( configRules
, askConfig
, Config(..)
Expand All @@ -14,17 +14,17 @@ import Control.Monad (void)
import qualified Data.HashMap.Strict as HM
import Data.Maybe (fromMaybe)
import Data.Yaml
import Development.Pier.Stackage
import Development.Pier.Command
import Development.Pier.Package
import Development.Pier.Persistent
import Distribution.Package
import Distribution.Version
import Development.Shake
import Development.Shake.Classes

import GHC.Generics hiding (packageName)

import Pier.Build.Stackage
import Pier.Build.Package
import Pier.Core.Command
import Pier.Core.Persistent

data StackYamlPath = StackYamlPath
deriving (Show, Eq, Typeable, Generic)
instance Hashable StackYamlPath
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
-- generate the templates they use at runtime.
--
-- TODO: find a more generic solution for this.
module Development.Pier.Build.Custom
module Pier.Build.Custom
( collectHappyDataFiles
, collectAlexDataFiles
) where
Expand All @@ -12,8 +12,8 @@ import Data.Monoid
import Development.Shake
import Development.Shake.FilePath

import Development.Pier.Command
import Development.Pier.Stackage
import Pier.Build.Stackage
import Pier.Core.Command

collectHappyDataFiles
:: InstalledGhc -> Artifact -> Action Artifact
Expand Down
8 changes: 4 additions & 4 deletions src/Development/Pier/Package.hs → src/Pier/Build/Package.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module Development.Pier.Package
module Pier.Build.Package
( getPackageSourceDir
, configurePackage
, parseCabalFileInDir
Expand All @@ -17,9 +17,9 @@ import Distribution.PackageDescription
import Distribution.PackageDescription.Parse
import Distribution.Compiler

import Development.Pier.Command
import Development.Pier.Download
import Development.Pier.Stackage
import Pier.Build.Stackage
import Pier.Core.Command
import Pier.Core.Download

downloadCabalPackage :: PackageIdentifier -> Action Artifact
downloadCabalPackage pkg = do
Expand Down
10 changes: 5 additions & 5 deletions src/Development/Pier/Stackage.hs → src/Pier/Build/Stackage.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE OverloadedStrings #-}
module Development.Pier.Stackage
module Pier.Build.Stackage
( buildPlanRules
, askBuildPlan
, askInstalledGhc
Expand Down Expand Up @@ -33,10 +33,10 @@ import Development.Shake.Classes hiding (get)
import Development.Shake.FilePath
import Development.Shake

import Development.Pier.Command
import Development.Pier.Download
import Development.Pier.Orphans ()
import Development.Pier.Persistent
import Pier.Core.Command
import Pier.Core.Download
import Pier.Core.Persistent
import Pier.Orphans ()

newtype PlanName = PlanName { renderPlanName :: String }
deriving (Show,Typeable,Eq,Hashable,Binary,NFData,Generic)
Expand Down
9 changes: 5 additions & 4 deletions src/Development/Pier/Command.hs → src/Pier/Core/Command.hs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
-- Output format: _pier/artifact/HASH/path/to/files
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE TypeOperators #-}
module Development.Pier.Command
module Pier.Core.Command
( commandRules
, Output
, output
Expand Down Expand Up @@ -58,9 +58,10 @@ import System.Process (showCommandForUser)
import System.Posix.Files (createSymbolicLink)
import Distribution.Simple.Utils (matchDirFileGlob)

import Development.Pier.Core
import Development.Pier.Orphans ()
import Development.Pier.Persistent
import Pier.Core.Directory
import Pier.Core.Run
import Pier.Core.Persistent
import Pier.Orphans ()

-- TODO: reconsider names in this module

Expand Down
12 changes: 12 additions & 0 deletions src/Pier/Core/Directory.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module Pier.Core.Directory
( createParentIfMissing
) where

import Control.Monad.IO.Class
import Development.Shake.FilePath
import System.Directory

-- | Create recursively the parent of the given path, if it doesn't exist.
createParentIfMissing :: MonadIO m => FilePath -> m ()
createParentIfMissing path
= liftIO $ createDirectoryIfMissing True (takeDirectory path)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module Development.Pier.Download
module Pier.Core.Download
( askDownload
, Download(..)
, downloadRules
Expand All @@ -16,9 +16,9 @@ import qualified System.Directory as Directory
import System.IO.Temp as Temp
import qualified System.IO as IO

import Development.Pier.Core
import Development.Pier.Command
import Development.Pier.Persistent
import Pier.Core.Directory
import Pier.Core.Command
import Pier.Core.Persistent

-- | Downloads @downloadUrlPrefix </> downloadName@ to
-- @downloadFilePrefix </> downloadName@.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{-# LANGUAGE DeriveAnyClass #-}
module Development.Pier.Persistent
module Pier.Core.Persistent
( addPersistent
, askPersistent
, askPersistents
Expand Down
10 changes: 1 addition & 9 deletions src/Development/Pier/Core.hs → src/Pier/Core/Run.hs
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
module Development.Pier.Core
module Pier.Core.Run
( -- * Build directory
runPier
, pierFile
, cleanAll
-- * Directory utilities
, createParentIfMissing
) where

import Control.Monad.IO.Class
import Development.Shake
import Development.Shake.FilePath
import System.Directory

pierDir :: FilePath
pierDir = "_pier"
Expand All @@ -30,7 +26,3 @@ runPier = shakeArgs shakeOptions

cleanAll :: Rules ()
cleanAll = action $ removeFilesAfter pierDir ["//"]

createParentIfMissing :: MonadIO m => FilePath -> m ()
createParentIfMissing path
= liftIO $ createDirectoryIfMissing True (takeDirectory path)
3 changes: 2 additions & 1 deletion src/Development/Pier/Orphans.hs → src/Pier/Orphans.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
-- | All-purpose module for defining orphan instances.
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Development.Pier.Orphans () where
module Pier.Orphans () where

import Data.Aeson.Types
import qualified Data.Text as T
Expand Down

0 comments on commit e9bb1d5

Please sign in to comment.