diff options
author | Daniel Gröber <dxld@darkboxed.org> | 2017-09-18 01:23:22 +0200 |
---|---|---|
committer | Daniel Gröber <dxld@darkboxed.org> | 2017-09-18 01:35:40 +0200 |
commit | f864a5eae8262752162c6b0d124aea4601ed9ac1 (patch) | |
tree | 1b765d25741b6e47d4ad458c8041c0881dd353b8 /CabalHelper/Data.hs | |
parent | 70d743eb6a8b7f8da182524fa0b2c4bf02399d50 (diff) |
Fix literally everything :)
Sorry for the megacommit
- Seperate modules into:
- Compiletime, modules which are only used while building the package
- Runtime, modues included in the wrapper binary to be compiled on the
users machine at runtime
- Shared, modues used in both contexts
- Refactor runtime compilation
- Completely revamp output paths
- Don't chdir when invoking ghc
- Require cabal-version 1.14 in cabal file
Diffstat (limited to 'CabalHelper/Data.hs')
-rw-r--r-- | CabalHelper/Data.hs | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/CabalHelper/Data.hs b/CabalHelper/Data.hs deleted file mode 100644 index 2c3404a..0000000 --- a/CabalHelper/Data.hs +++ /dev/null @@ -1,46 +0,0 @@ --- 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 TemplateHaskell #-} -{-# OPTIONS_GHC -fforce-recomp #-} -module CabalHelper.Data where - -import Control.Monad -import Data.Functor -import qualified Data.ByteString as BS -import qualified Data.ByteString.UTF8 as UTF8 -import Language.Haskell.TH -import System.FilePath -import System.Directory -import System.IO.Temp -import Prelude - -withHelperSources :: (FilePath -> IO a) -> IO a -withHelperSources action = withSystemTempDirectory "cabal-helper" $ \dir -> do - let chdir = dir </> "CabalHelper" - createDirectory chdir - forM_ sourceFiles $ \(fn, src) -> - BS.writeFile (chdir </> fn) $ UTF8.fromString src - action dir - -sourceFiles :: [(FilePath, String)] -sourceFiles = - [ ("Main.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Main.hs"))) - , ("Common.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Common.hs"))) - , ("Sandbox.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Sandbox.hs"))) - , ("Licenses.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Licenses.hs"))) - , ("Types.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Types.hs"))) - ] |