From 4b8d0ee4a44fefb452a6f102cb55bedb7f19b91c Mon Sep 17 00:00:00 2001 From: Joscha Date: Sat, 14 Mar 2020 01:02:57 +0000 Subject: [PATCH] [all] Reorganize haskell code into multiple packages --- .gitignore | 1 - CHANGELOG.md | 2 +- Setup.hs | 2 - forest-cabin/README.md | 1 + {server => forest-cabin/app}/Main.hs | 0 forest-cabin/forest-cabin.cabal | 52 +++++++++++++ forest-cabin/package.yaml | 32 ++++++++ forest-common/README.md | 1 + forest-common/forest-common.cabal | 44 +++++++++++ forest-common/package.yaml | 23 ++++++ {src => forest-common/src}/Forest/Api.hs | 0 {src => forest-common/src}/Forest/Node.hs | 0 .../src}/Forest/OrderedMap.hs | 0 {src => forest-common/src}/Forest/Util.hs | 21 ++++-- forest-server/README.md | 1 + forest-server/forest-server.cabal | 47 ++++++++++++ forest-server/package.yaml | 23 ++++++ {src => forest-server/src}/Forest/Server.hs | 2 +- .../src}/Forest/Server/Broadcast.hs | 0 .../src}/Forest/Server/TreeModule.hs | 0 .../src}/Forest/Server/TreeModule/Animate.hs | 0 .../src}/Forest/Server/TreeModule/Const.hs | 0 .../src}/Forest/Server/TreeModule/Fork.hs | 0 .../Forest/Server/TreeModule/SharedEditing.hs | 0 forest-tui/README.md | 1 + {client => forest-tui/app}/Main.hs | 0 forest-tui/forest-tui.cabal | 74 +++++++++++++++++++ forest-tui/package.yaml | 39 ++++++++++ {src => forest-tui/src}/Forest/Client.hs | 6 +- .../src}/Forest/Client/NodeUtil.hs | 0 .../src}/Forest/Client/Options.hs | 0 .../src}/Forest/Client/UiState.hs | 12 +-- .../src}/Forest/Client/Websocket.hs | 0 .../src/Forest/Client/Widgets}/NodeEditor.hs | 2 +- .../src/Forest/Client/Widgets}/WidgetTree.hs | 2 +- package.yaml | 52 ------------- stack.yaml | 68 +---------------- 37 files changed, 368 insertions(+), 140 deletions(-) delete mode 100644 Setup.hs create mode 100644 forest-cabin/README.md rename {server => forest-cabin/app}/Main.hs (100%) create mode 100644 forest-cabin/forest-cabin.cabal create mode 100644 forest-cabin/package.yaml create mode 100644 forest-common/README.md create mode 100644 forest-common/forest-common.cabal create mode 100644 forest-common/package.yaml rename {src => forest-common/src}/Forest/Api.hs (100%) rename {src => forest-common/src}/Forest/Node.hs (100%) rename {src => forest-common/src}/Forest/OrderedMap.hs (100%) rename {src => forest-common/src}/Forest/Util.hs (88%) create mode 100644 forest-server/README.md create mode 100644 forest-server/forest-server.cabal create mode 100644 forest-server/package.yaml rename {src => forest-server/src}/Forest/Server.hs (98%) rename {src => forest-server/src}/Forest/Server/Broadcast.hs (100%) rename {src => forest-server/src}/Forest/Server/TreeModule.hs (100%) rename {src => forest-server/src}/Forest/Server/TreeModule/Animate.hs (100%) rename {src => forest-server/src}/Forest/Server/TreeModule/Const.hs (100%) rename {src => forest-server/src}/Forest/Server/TreeModule/Fork.hs (100%) rename {src => forest-server/src}/Forest/Server/TreeModule/SharedEditing.hs (100%) create mode 100644 forest-tui/README.md rename {client => forest-tui/app}/Main.hs (100%) create mode 100644 forest-tui/forest-tui.cabal create mode 100644 forest-tui/package.yaml rename {src => forest-tui/src}/Forest/Client.hs (96%) rename {src => forest-tui/src}/Forest/Client/NodeUtil.hs (100%) rename {src => forest-tui/src}/Forest/Client/Options.hs (100%) rename {src => forest-tui/src}/Forest/Client/UiState.hs (96%) rename {src => forest-tui/src}/Forest/Client/Websocket.hs (100%) rename {src/Forest/Client => forest-tui/src/Forest/Client/Widgets}/NodeEditor.hs (97%) rename {src/Forest/Client => forest-tui/src/Forest/Client/Widgets}/WidgetTree.hs (99%) delete mode 100644 package.yaml diff --git a/.gitignore b/.gitignore index a5c3e0f..76467e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ .stack-work/ -forest.cabal *~ diff --git a/CHANGELOG.md b/CHANGELOG.md index 8afd99e..2447cb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ # Changelog for forest ## upcoming -* create project +- create project diff --git a/Setup.hs b/Setup.hs deleted file mode 100644 index 9a994af..0000000 --- a/Setup.hs +++ /dev/null @@ -1,2 +0,0 @@ -import Distribution.Simple -main = defaultMain diff --git a/forest-cabin/README.md b/forest-cabin/README.md new file mode 100644 index 0000000..403023d --- /dev/null +++ b/forest-cabin/README.md @@ -0,0 +1 @@ +# forest-cabin diff --git a/server/Main.hs b/forest-cabin/app/Main.hs similarity index 100% rename from server/Main.hs rename to forest-cabin/app/Main.hs diff --git a/forest-cabin/forest-cabin.cabal b/forest-cabin/forest-cabin.cabal new file mode 100644 index 0000000..3c0b54a --- /dev/null +++ b/forest-cabin/forest-cabin.cabal @@ -0,0 +1,52 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.31.2. +-- +-- see: https://github.com/sol/hpack +-- +-- hash: c619b22393d818639b183c69031b267a4ed16faeaf609a75ef1cadb9288195e1 + +name: forest-cabin +version: 0.1.0.0 +synopsis: A forest server hosted at forest.plugh.de +description: Please see the README at +homepage: https://github.com/Garmelon/forest#readme +bug-reports: https://github.com/Garmelon/forest/issues +author: Garmelon +maintainer: Garmelon +copyright: 2020 Garmelon +license: MIT +build-type: Simple +extra-source-files: + README.md + +source-repository head + type: git + location: https://github.com/Garmelon/forest + +library + other-modules: + Paths_forest_cabin + hs-source-dirs: + src + build-depends: + base >=4.7 && <5 + , forest-common + , forest-server + , websockets + default-language: Haskell2010 + +executable forest-cabin + main-is: Main.hs + other-modules: + Paths_forest_cabin + hs-source-dirs: + app + ghc-options: -threaded -rtsopts -with-rtsopts=-N + build-depends: + base >=4.7 && <5 + , forest-cabin + , forest-common + , forest-server + , websockets + default-language: Haskell2010 diff --git a/forest-cabin/package.yaml b/forest-cabin/package.yaml new file mode 100644 index 0000000..4bfa1c6 --- /dev/null +++ b/forest-cabin/package.yaml @@ -0,0 +1,32 @@ +name: forest-cabin +version: 0.1.0.0 +license: MIT +author: Garmelon +copyright: 2020 Garmelon + +synopsis: A forest server hosted at forest.plugh.de +description: Please see the README at +github: Garmelon/forest + +extra-source-files: + - README.md + +dependencies: + - base >= 4.7 && < 5 + - forest-common + - forest-server + - websockets + +library: + source-dirs: src + +executables: + forest-cabin: + source-dirs: app + main: Main.hs + ghc-options: + - -threaded + - -rtsopts + - -with-rtsopts=-N + dependencies: + - forest-cabin diff --git a/forest-common/README.md b/forest-common/README.md new file mode 100644 index 0000000..1f158f6 --- /dev/null +++ b/forest-common/README.md @@ -0,0 +1 @@ +# forest-common diff --git a/forest-common/forest-common.cabal b/forest-common/forest-common.cabal new file mode 100644 index 0000000..b888552 --- /dev/null +++ b/forest-common/forest-common.cabal @@ -0,0 +1,44 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.31.2. +-- +-- see: https://github.com/sol/hpack +-- +-- hash: e59723e563cf364a74b1032409ed7a9d3ecbec3a6baa34554771cb5c1a5689d9 + +name: forest-common +version: 0.1.0.0 +synopsis: A tree-based multi-user interaction thing +description: Please see the README at +homepage: https://github.com/Garmelon/forest#readme +bug-reports: https://github.com/Garmelon/forest/issues +author: Garmelon +maintainer: Garmelon +copyright: 2020 Garmelon +license: MIT +build-type: Simple +extra-source-files: + README.md + +source-repository head + type: git + location: https://github.com/Garmelon/forest + +library + exposed-modules: + Forest.Api + Forest.Node + Forest.OrderedMap + Forest.Util + other-modules: + Paths_forest_common + hs-source-dirs: + src + build-depends: + aeson + , async + , base >=4.7 && <5 + , containers + , text + , websockets + default-language: Haskell2010 diff --git a/forest-common/package.yaml b/forest-common/package.yaml new file mode 100644 index 0000000..cc74cc9 --- /dev/null +++ b/forest-common/package.yaml @@ -0,0 +1,23 @@ +name: forest-common +version: 0.1.0.0 +license: MIT +author: Garmelon +copyright: 2020 Garmelon + +synopsis: A tree-based multi-user interaction thing +description: Please see the README at +github: Garmelon/forest + +extra-source-files: + - README.md + +dependencies: + - base >= 4.7 && < 5 + - aeson + - async + - containers + - text + - websockets + +library: + source-dirs: src diff --git a/src/Forest/Api.hs b/forest-common/src/Forest/Api.hs similarity index 100% rename from src/Forest/Api.hs rename to forest-common/src/Forest/Api.hs diff --git a/src/Forest/Node.hs b/forest-common/src/Forest/Node.hs similarity index 100% rename from src/Forest/Node.hs rename to forest-common/src/Forest/Node.hs diff --git a/src/Forest/OrderedMap.hs b/forest-common/src/Forest/OrderedMap.hs similarity index 100% rename from src/Forest/OrderedMap.hs rename to forest-common/src/Forest/OrderedMap.hs diff --git a/src/Forest/Util.hs b/forest-common/src/Forest/Util.hs similarity index 88% rename from src/Forest/Util.hs rename to forest-common/src/Forest/Util.hs index b92ca77..68cad73 100644 --- a/src/Forest/Util.hs +++ b/forest-common/src/Forest/Util.hs @@ -1,11 +1,16 @@ {-# LANGUAGE OverloadedStrings #-} module Forest.Util - ( findPrev + ( + -- * List operations + findPrev , findNext + -- * Monadic looping constructs , whileM - , runUntilJustM + , whileNothingM + -- * Multithreading helpers , withThread + -- * Websocket helper functions , sendPacket , closeWithErrorMessage , receivePacket @@ -24,9 +29,6 @@ findPrev f as = fst <$> find (f . snd) (zip as $ tail as) findNext :: (a -> Bool) -> [a] -> Maybe a findNext f as = snd <$> find (f . fst) (zip as $ tail as) -withThread :: IO () -> IO () -> IO () -withThread thread main = withAsync thread $ const main - -- | Run a monadic action until it returns @False@ for the first time. whileM :: Monad m => m Bool -> m () whileM f = do @@ -36,13 +38,16 @@ whileM f = do else pure () -- | Run a monadic action until it returns @Just a@ for the first time. -runUntilJustM :: Monad m => m (Maybe a) -> m a -runUntilJustM f = do +whileNothingM :: Monad m => m (Maybe a) -> m a +whileNothingM f = do result <- f case result of - Nothing -> runUntilJustM f + Nothing -> whileNothingM f Just a -> pure a +withThread :: IO () -> IO () -> IO () +withThread thread main = withAsync thread $ const main + sendPacket :: ToJSON a => WS.Connection -> a -> IO () sendPacket conn packet = WS.sendTextData conn $ encode packet diff --git a/forest-server/README.md b/forest-server/README.md new file mode 100644 index 0000000..b13ad16 --- /dev/null +++ b/forest-server/README.md @@ -0,0 +1 @@ +# forest-server diff --git a/forest-server/forest-server.cabal b/forest-server/forest-server.cabal new file mode 100644 index 0000000..1e6e2f8 --- /dev/null +++ b/forest-server/forest-server.cabal @@ -0,0 +1,47 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.31.2. +-- +-- see: https://github.com/sol/hpack +-- +-- hash: c0d366de2ff27f13dd69d751b47017143df332454ad700dd8fb5089d9837f1a8 + +name: forest-server +version: 0.1.0.0 +synopsis: A framework for forest servers +description: Please see the README at +homepage: https://github.com/Garmelon/forest#readme +bug-reports: https://github.com/Garmelon/forest/issues +author: Garmelon +maintainer: Garmelon +copyright: 2020 Garmelon +license: MIT +build-type: Simple +extra-source-files: + README.md + +source-repository head + type: git + location: https://github.com/Garmelon/forest + +library + exposed-modules: + Forest.Server + Forest.Server.Broadcast + Forest.Server.TreeModule + Forest.Server.TreeModule.Animate + Forest.Server.TreeModule.Const + Forest.Server.TreeModule.Fork + Forest.Server.TreeModule.SharedEditing + other-modules: + Paths_forest_server + hs-source-dirs: + src + build-depends: + base >=4.7 && <5 + , containers + , forest-common + , text + , transformers + , websockets + default-language: Haskell2010 diff --git a/forest-server/package.yaml b/forest-server/package.yaml new file mode 100644 index 0000000..ad01b10 --- /dev/null +++ b/forest-server/package.yaml @@ -0,0 +1,23 @@ +name: forest-server +version: 0.1.0.0 +license: MIT +author: Garmelon +copyright: 2020 Garmelon + +synopsis: A framework for forest servers +description: Please see the README at +github: Garmelon/forest + +extra-source-files: + - README.md + +dependencies: + - base >= 4.7 && < 5 + - containers + - forest-common + - text + - transformers + - websockets + +library: + source-dirs: src diff --git a/src/Forest/Server.hs b/forest-server/src/Forest/Server.hs similarity index 98% rename from src/Forest/Server.hs rename to forest-server/src/Forest/Server.hs index cda6b93..7a665a6 100644 --- a/src/Forest/Server.hs +++ b/forest-server/src/Forest/Server.hs @@ -32,7 +32,7 @@ sendUpdatesThread conn nodeChan nodeA = do {- Main server application that receives and processes client packets -} receivePackets :: TreeModule a () => WS.Connection -> a () -> IO () -receivePackets conn treeModule = runUntilJustM $ do +receivePackets conn treeModule = whileNothingM $ do packet <- receivePacket conn case packet of ClientEdit path text -> do diff --git a/src/Forest/Server/Broadcast.hs b/forest-server/src/Forest/Server/Broadcast.hs similarity index 100% rename from src/Forest/Server/Broadcast.hs rename to forest-server/src/Forest/Server/Broadcast.hs diff --git a/src/Forest/Server/TreeModule.hs b/forest-server/src/Forest/Server/TreeModule.hs similarity index 100% rename from src/Forest/Server/TreeModule.hs rename to forest-server/src/Forest/Server/TreeModule.hs diff --git a/src/Forest/Server/TreeModule/Animate.hs b/forest-server/src/Forest/Server/TreeModule/Animate.hs similarity index 100% rename from src/Forest/Server/TreeModule/Animate.hs rename to forest-server/src/Forest/Server/TreeModule/Animate.hs diff --git a/src/Forest/Server/TreeModule/Const.hs b/forest-server/src/Forest/Server/TreeModule/Const.hs similarity index 100% rename from src/Forest/Server/TreeModule/Const.hs rename to forest-server/src/Forest/Server/TreeModule/Const.hs diff --git a/src/Forest/Server/TreeModule/Fork.hs b/forest-server/src/Forest/Server/TreeModule/Fork.hs similarity index 100% rename from src/Forest/Server/TreeModule/Fork.hs rename to forest-server/src/Forest/Server/TreeModule/Fork.hs diff --git a/src/Forest/Server/TreeModule/SharedEditing.hs b/forest-server/src/Forest/Server/TreeModule/SharedEditing.hs similarity index 100% rename from src/Forest/Server/TreeModule/SharedEditing.hs rename to forest-server/src/Forest/Server/TreeModule/SharedEditing.hs diff --git a/forest-tui/README.md b/forest-tui/README.md new file mode 100644 index 0000000..244c893 --- /dev/null +++ b/forest-tui/README.md @@ -0,0 +1 @@ +# forest-tui diff --git a/client/Main.hs b/forest-tui/app/Main.hs similarity index 100% rename from client/Main.hs rename to forest-tui/app/Main.hs diff --git a/forest-tui/forest-tui.cabal b/forest-tui/forest-tui.cabal new file mode 100644 index 0000000..5cae330 --- /dev/null +++ b/forest-tui/forest-tui.cabal @@ -0,0 +1,74 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.31.2. +-- +-- see: https://github.com/sol/hpack +-- +-- hash: 9ca3a1fe555e2dceb3459b6ae920b1ed93aac76398d4909a7030d7992b79ce40 + +name: forest-tui +version: 0.1.0.0 +synopsis: A terminal-based client for forest +description: Please see the README at +homepage: https://github.com/Garmelon/forest#readme +bug-reports: https://github.com/Garmelon/forest/issues +author: Garmelon +maintainer: Garmelon +copyright: 2020 Garmelon +license: MIT +build-type: Simple +extra-source-files: + README.md + +source-repository head + type: git + location: https://github.com/Garmelon/forest + +library + exposed-modules: + Forest.Client + Forest.Client.NodeUtil + Forest.Client.Options + Forest.Client.UiState + Forest.Client.Websocket + Forest.Client.Widgets.NodeEditor + Forest.Client.Widgets.WidgetTree + other-modules: + Paths_forest_tui + hs-source-dirs: + src + build-depends: + base >=4.7 && <5 + , brick + , containers + , forest-common + , optparse-applicative + , safe + , text + , text-zipper + , vty + , websockets + , wuss + default-language: Haskell2010 + +executable forest + main-is: Main.hs + other-modules: + Paths_forest_tui + hs-source-dirs: + app + ghc-options: -threaded -rtsopts -with-rtsopts=-N + build-depends: + base >=4.7 && <5 + , brick + , containers + , forest-common + , forest-tui + , optparse-applicative + , safe + , text + , text-zipper + , vty + , websockets + , wuss + default-language: Haskell2010 diff --git a/forest-tui/package.yaml b/forest-tui/package.yaml new file mode 100644 index 0000000..12f71d9 --- /dev/null +++ b/forest-tui/package.yaml @@ -0,0 +1,39 @@ +name: forest-tui +version: 0.1.0.0 +license: MIT +author: Garmelon +copyright: 2020 Garmelon + +synopsis: A terminal-based client for forest +description: Please see the README at +github: Garmelon/forest + +extra-source-files: + - README.md + +dependencies: + - base >= 4.7 && < 5 + - brick + - containers + - forest-common + - optparse-applicative + - safe + - text + - text-zipper + - vty + - websockets + - wuss + +library: + source-dirs: src + +executables: + forest: + source-dirs: app + main: Main.hs + ghc-options: + - -threaded + - -rtsopts + - -with-rtsopts=-N + dependencies: + - forest-tui diff --git a/src/Forest/Client.hs b/forest-tui/src/Forest/Client.hs similarity index 96% rename from src/Forest/Client.hs rename to forest-tui/src/Forest/Client.hs index 871bc66..c621828 100644 --- a/src/Forest/Client.hs +++ b/forest-tui/src/Forest/Client.hs @@ -11,13 +11,13 @@ import Brick.BChan import Brick.Widgets.Edit import Control.Monad import Control.Monad.IO.Class -import qualified Graphics.Vty as Vty -import qualified Network.WebSockets as WS +import qualified Graphics.Vty as Vty +import qualified Network.WebSockets as WS import Forest.Api import Forest.Client.UiState import Forest.Client.Websocket -import Forest.Client.WidgetTree +import Forest.Client.Widgets.WidgetTree import Forest.Node import Forest.Util diff --git a/src/Forest/Client/NodeUtil.hs b/forest-tui/src/Forest/Client/NodeUtil.hs similarity index 100% rename from src/Forest/Client/NodeUtil.hs rename to forest-tui/src/Forest/Client/NodeUtil.hs diff --git a/src/Forest/Client/Options.hs b/forest-tui/src/Forest/Client/Options.hs similarity index 100% rename from src/Forest/Client/Options.hs rename to forest-tui/src/Forest/Client/Options.hs diff --git a/src/Forest/Client/UiState.hs b/forest-tui/src/Forest/Client/UiState.hs similarity index 96% rename from src/Forest/Client/UiState.hs rename to forest-tui/src/Forest/Client/UiState.hs index 000f846..d6dff76 100644 --- a/src/Forest/Client/UiState.hs +++ b/forest-tui/src/Forest/Client/UiState.hs @@ -35,16 +35,16 @@ module Forest.Client.UiState import Brick import Data.List import Data.Maybe -import qualified Data.Set as Set -import qualified Data.Text as T -import qualified Graphics.Vty as Vty +import qualified Data.Set as Set +import qualified Data.Text as T +import qualified Graphics.Vty as Vty import Safe -import Forest.Client.NodeEditor import Forest.Client.NodeUtil -import Forest.Client.WidgetTree +import Forest.Client.Widgets.NodeEditor +import Forest.Client.Widgets.WidgetTree import Forest.Node -import qualified Forest.OrderedMap as OMap +import qualified Forest.OrderedMap as OMap data EditorInfo n = EditorInfo { eiEditor :: !(NodeEditor n) diff --git a/src/Forest/Client/Websocket.hs b/forest-tui/src/Forest/Client/Websocket.hs similarity index 100% rename from src/Forest/Client/Websocket.hs rename to forest-tui/src/Forest/Client/Websocket.hs diff --git a/src/Forest/Client/NodeEditor.hs b/forest-tui/src/Forest/Client/Widgets/NodeEditor.hs similarity index 97% rename from src/Forest/Client/NodeEditor.hs rename to forest-tui/src/Forest/Client/Widgets/NodeEditor.hs index 261ac4c..51e8e86 100644 --- a/src/Forest/Client/NodeEditor.hs +++ b/forest-tui/src/Forest/Client/Widgets/NodeEditor.hs @@ -1,6 +1,6 @@ {-# LANGUAGE OverloadedStrings #-} -module Forest.Client.NodeEditor +module Forest.Client.Widgets.NodeEditor ( NodeEditor , getCurrentText , beginEdit diff --git a/src/Forest/Client/WidgetTree.hs b/forest-tui/src/Forest/Client/Widgets/WidgetTree.hs similarity index 99% rename from src/Forest/Client/WidgetTree.hs rename to forest-tui/src/Forest/Client/Widgets/WidgetTree.hs index ded6f23..17cd0ce 100644 --- a/src/Forest/Client/WidgetTree.hs +++ b/forest-tui/src/Forest/Client/Widgets/WidgetTree.hs @@ -1,6 +1,6 @@ {-# LANGUAGE OverloadedStrings #-} -module Forest.Client.WidgetTree +module Forest.Client.Widgets.WidgetTree ( WidgetTree(..) , renderWidgetTreeWith , renderWidgetTree diff --git a/package.yaml b/package.yaml deleted file mode 100644 index 4d171c7..0000000 --- a/package.yaml +++ /dev/null @@ -1,52 +0,0 @@ -name: forest -version: 0.1.0.0 -license: MIT -author: "Garmelon " -copyright: "2020 Garmelon" - -synopsis: A tree-based multi-user interaction thing -description: Please see the README on GitHub at -github: "Garmelon/forest" - -extra-source-files: -- README.md -- CHANGELOG.md - -dependencies: -- base >= 4.7 && < 5 -- aeson -- async -- brick -- containers -- optparse-applicative -- safe -- text -- text-zipper -- transformers -- vty -- websockets -- wuss - -library: - source-dirs: src - -executables: - forest-server: - main: Main.hs - source-dirs: server - ghc-options: - - -threaded - - -rtsopts - - -with-rtsopts=-N - dependencies: - - forest - - forest-client: - main: Main.hs - source-dirs: client - ghc-options: - - -threaded - - -rtsopts - - -with-rtsopts=-N - dependencies: - - forest diff --git a/stack.yaml b/stack.yaml index 465f104..4690758 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,66 +1,6 @@ -# This file was automatically generated by 'stack init' -# -# Some commonly used options have been documented as comments in this file. -# For advanced use and comprehensive documentation of the format, please see: -# https://docs.haskellstack.org/en/stable/yaml_configuration/ - -# Resolver to choose a 'specific' stackage snapshot or a compiler version. -# A snapshot resolver dictates the compiler version and the set of packages -# to be used for project dependencies. For example: -# -# resolver: lts-3.5 -# resolver: nightly-2015-09-21 -# resolver: ghc-7.10.2 -# -# The location of a snapshot can be provided as a file or url. Stack assumes -# a snapshot provided as a file might change, whereas a url resource does not. -# -# resolver: ./custom-snapshot.yaml -# resolver: https://example.com/snapshots/2018-01-01.yaml resolver: lts-15.1 - -# User packages to be built. -# Various formats can be used as shown in the example below. -# -# packages: -# - some-directory -# - https://example.com/foo/bar/baz-0.0.2.tar.gz -# subdirs: -# - auto-update -# - wai packages: -- . -# Dependency packages to be pulled from upstream that are not in the resolver. -# These entries can reference officially published versions as well as -# forks / in-progress versions pinned to a git hash. For example: -# -# extra-deps: -# - acme-missiles-0.3 -# - git: https://github.com/commercialhaskell/stack.git -# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a -# -# extra-deps: [] - -# Override default flag values for local packages and extra-deps -# flags: {} - -# Extra package databases containing global packages -# extra-package-dbs: [] - -# Control whether we use the GHC we find on the path -# system-ghc: true -# -# Require a specific version of stack, using version ranges -# require-stack-version: -any # Default -# require-stack-version: ">=2.1" -# -# Override the architecture used by stack, especially useful on Windows -# arch: i386 -# arch: x86_64 -# -# Extra directories used by stack for building -# extra-include-dirs: [/path/to/dir] -# extra-lib-dirs: [/path/to/dir] -# -# Allow a newer minor version of GHC than the snapshot specifies -# compiler-check: newer-minor + - forest-cabin + - forest-common + - forest-server + - forest-tui