~wunderbrick/foodro

b44f16ac69220551ea06823d7a628e6c5c1e3275 — awp 7 months ago 8d5a7fb multi-.cabal
Save on multi-cabal, flake does not build dev env
7 files changed, 95 insertions(+), 25 deletions(-)

M backend/foodro.cabal
R backend/scripts-src/{CreateDb.hs => foodro-create-db/CreateDb.hs}
A backend/scripts-src/foodro-create-db/Main.hs
A backend/scripts-src/foodro-create-db/foodro-create-db.cabal
M cabal.project
M flake.nix
M hie.yaml
M backend/foodro.cabal => backend/foodro.cabal +1 -17
@@ 94,14 94,6 @@ library
                       , Foodro.Handlers.Donations.Create
                       , Foodro.Handlers.Donations.Update

library foodro-create-db-lib
  import:                build-deps
  build-depends:         foodro
  default-language:      Haskell2010
  ghc-options:           -Wall -Wno-missing-signatures -Wno-orphans -Wno-unused-imports -fprint-potential-instances
  hs-source-dirs:        scripts-src
  exposed-modules:       CreateDb

library foodro-populate-db-lib
  import:                build-deps
  build-depends:         foodro


@@ 120,14 112,6 @@ executable foodro
  hs-source-dirs:        src
  default-language:      Haskell2010

executable foodro-create-db
  import:                build-deps
  main-is:               CreateDb.hs
  build-depends:         foodro
  ghc-options:           -Wall -O2 -threaded -rtsopts -with-rtsopts=-N -Wno-missing-signatures -Wno-orphans -Wno-unused-imports -fprint-potential-instances
  hs-source-dirs:        scripts-src
  default-language:      Haskell2010

executable foodro-populate-db
  import:                build-deps
  main-is:               PopulateDb.hs


@@ 156,7 140,7 @@ test-suite foodro-tests
                 , Spec.VolunteerSpam
                 , Spec.Database.Donations
  build-depends:   foodro
                 , foodro-create-db-lib
                 , foodro-create-db
                 , foodro-populate-db-lib
                 , base
                 , containers

R backend/scripts-src/CreateDb.hs => backend/scripts-src/foodro-create-db/CreateDb.hs +0 -3
@@ 5,9 5,6 @@ module CreateDb where
import Database.SQLite.Simple
import System.Environment

main :: IO ()
main = getEnv "BACKEND_DEV_DB" >>= createDb

-- | Create all the tables, triggers, etc. Returns a Connection to be passed along to
createDb :: String -> IO ()
createDb dbFile = do

A backend/scripts-src/foodro-create-db/Main.hs => backend/scripts-src/foodro-create-db/Main.hs +7 -0
@@ 0,0 1,7 @@
module Main where

import CreateDb (createDb)
import System.Environment

main :: IO ()
main = getEnv "BACKEND_DEV_DB" >>= createDb
\ No newline at end of file

A backend/scripts-src/foodro-create-db/foodro-create-db.cabal => backend/scripts-src/foodro-create-db/foodro-create-db.cabal +77 -0
@@ 0,0 1,77 @@
cabal-version:       2.4
name:                foodro-create-db
version:             0.1.0.0
-- synopsis:
-- description:
license-file:        LICENSE
author:              wunderbrick
maintainer:
-- copyright:
category:            Web
build-type:          Simple

common build-deps
  build-depends:         base
                       , safe-exceptions
                       , string-conversions
                       , ghc
                       , text
                       , time
                       , random
                       , bytestring
                       , containers
                       , unordered-containers
                       , transformers
                       , aeson
                       , lens
                       , lifted-async
                       , async
                       , stm
                       , either
                       , servant
                       , servant-server
                       , servant-auth
                       , servant-auth-server
                       , servant-client
                       , servant-lucid
                       , scientific
                       , lucid
                       , cookie
                       , network
                       , http-client
                       , http-api-data
                       , http-client
                       , http-media
                       , http-types
                       , mtl
                       , wai
                       , warp
                       , beam-core
                       , beam-sqlite
                       , sqlite-simple
                       , mime-mail
                       , smtp-mail
                       , jwt
                       , jose
                       , password
                       , Unique
                       , Cabal

library
  import:                build-deps
  build-depends:         foodro
  default-language:      Haskell2010
  ghc-options:           -Wall -Wno-missing-signatures -Wno-orphans -Wno-unused-imports -fprint-potential-instances
  hs-source-dirs:        .
  exposed-modules:       CreateDb

executable foodro-create-db
  import:                build-deps
  main-is:               Main.hs
  build-depends:         foodro
                       , foodro-create-db
  ghc-options:           -Wall -O2 -threaded -rtsopts -with-rtsopts=-N -Wno-missing-signatures -Wno-orphans -Wno-unused-imports -fprint-potential-instances
  hs-source-dirs:        .
  default-language:      Haskell2010



M cabal.project => cabal.project +3 -1
@@ 1,4 1,6 @@
packages: backend
packages: 
  backend/foodro.cabal
  backend/scripts-src/foodro-create-db/foodro-create-db.cabal

source-repository-package
  type:     git

M flake.nix => flake.nix +4 -1
@@ 71,7 71,7 @@
                  };

                  foodro-create-db = final.haskell-nix.project' rec {
                    src = ./backend;
                    src = ./backend/scripts-src/foodro-create-db;
                    compiler-nix-name = "ghc902";
                    # This is used by `nix develop .` to open a shell for use with
                    # `cabal`, `hlint` and `haskell-language-server`


@@ 191,8 191,11 @@
          // rec {
            # Built by `nix build .`
            defaultPackage = flakeFoodro.packages."foodro:exe:foodro";

            packages.system."foodro-create-db" = flakeFoodroCreateDb.packages."foodro-create-db:exe:foodro-create-db";

            packages.system."foodro-populate-db" = flakeFoodroPopulateDb.packages."foodro-populate-db:exe:foodro-populate-db";

            packages.system."foodro-generate-purescript-types" = flakeFoodroGeneratePureScriptTypes.packages."foodro-generate-purescript-types:exe:foodro-generate-purescript-types";
          });


M hie.yaml => hie.yaml +3 -3
@@ 1,11 1,11 @@
cradle:
  cabal:
    - path: "backend"
      component: "lib:foodro" #"foodro:exe:foodro"
    - path: "backend"
      component: "lib:foodro"
    - path: "backend/scripts-src/foodro-create-db"
      component: "lib:foodro-create-db"
    - path: "backend"
      component: "lib:foodro-populate-db"
      component: "lib:foodro-populate-db-lib"
    - path: "backend/tests/Tests.hs"
      component: "test:foodro-tests"