Skip to content

Commit bd02781

Browse files
committed
Adjust build.nix conditions for haskell projects to reduce risk of a HaskellProjectType added later missing its build
1 parent 32b2202 commit bd02781

File tree

5 files changed

+16
-11
lines changed

5 files changed

+16
-11
lines changed

.last-exported-commit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Last exported commit from parent repo: 297f6b375154e7ab9d5329a7038439b907389ab1
1+
Last exported commit from parent repo: 74075fe52d4ef4cc3fe2e97bd35e30fde9a84b5c

nix-bootstrap.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ cabal-version: 2.0
55
-- see: https://github.com/sol/hpack
66

77
name: nix-bootstrap
8-
version: 2.4.0.0
8+
version: 2.4.0.1
99
author: gchquser
1010
maintainer: [email protected]
1111
copyright: Crown Copyright

package.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414
name: nix-bootstrap
15-
version: 2.4.0.0
15+
version: 2.4.0.1
1616
author: gchquser
1717
maintainer: [email protected]
1818
copyright: Crown Copyright

src/Bootstrap/Data/Bootstrappable/BuildNix.hs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ import Bootstrap.Data.Bootstrappable
1111
)
1212
import Bootstrap.Data.ProjectName (ProjectName)
1313
import Bootstrap.Data.ProjectType
14-
( HaskellOptions (HaskellOptions),
15-
HaskellProjectType (HaskellProjectTypeBasic, HaskellProjectTypeServer),
16-
JavaOptions (JavaOptions),
14+
( JavaOptions (JavaOptions),
1715
ProjectType
1816
( Elm,
1917
Go,
@@ -25,8 +23,8 @@ import Bootstrap.Data.ProjectType
2523
Rust
2624
),
2725
SetUpGoBuild (SetUpGoBuild),
28-
SetUpHaskellBuild (SetUpHaskellBuild),
2926
SetUpJavaBuild (SetUpJavaBuild),
27+
haskellOptionsRequireBuild,
3028
)
3129
import Bootstrap.Nix.Expr (Expr (EFunc), FunctionArgs (FASet), IsNixExpr (toNixExpr), nix)
3230
import Bootstrap.Nix.Expr.ReproducibleBuild
@@ -77,10 +75,9 @@ buildExprFor :: SrcDir -> ProjectName -> ProjectType -> Maybe ReproducibleBuildE
7775
buildExprFor srcDir projectName = \case
7876
Minimal -> Nothing
7977
Elm _ -> Nothing
80-
Haskell (HaskellOptions _ (HaskellProjectTypeBasic (SetUpHaskellBuild True))) ->
81-
Just . reproducibleHaskellBuild projectName $ srcDirExpr srcDir
82-
Haskell (HaskellOptions _ (HaskellProjectTypeServer (SetUpHaskellBuild True))) ->
83-
Just . reproducibleHaskellBuild projectName $ srcDirExpr srcDir
78+
Haskell haskellOptions
79+
| haskellOptionsRequireBuild haskellOptions ->
80+
Just . reproducibleHaskellBuild projectName $ srcDirExpr srcDir
8481
Haskell _ -> Nothing
8582
Node _ -> Nothing
8683
Go (SetUpGoBuild True) -> Just $ reproducibleGoBuild projectName

src/Bootstrap/Data/ProjectType.hs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module Bootstrap.Data.ProjectType
1717
ElmMode (..),
1818
HaskellOptions (..),
1919
HaskellProjectType (..),
20+
haskellOptionsRequireBuild,
2021
promptHaskellProjectType,
2122
SetUpHaskellBuild (..),
2223
NodePackageManager (..),
@@ -175,6 +176,13 @@ data HaskellOptions = HaskellOptions
175176
deriving stock (Eq, Generic, Show)
176177
deriving (FromDhall, ToDhall) via Codec (Field HaskellOptionsDhallFields) HaskellOptions
177178

179+
-- | Returns true if the user has requested a production build
180+
haskellOptionsRequireBuild :: HaskellOptions -> Bool
181+
haskellOptionsRequireBuild HaskellOptions {..} = case haskellOptionsHaskellProjectType of
182+
HaskellProjectTypeReplOnly -> False
183+
HaskellProjectTypeBasic (SetUpHaskellBuild b) -> b
184+
HaskellProjectTypeServer (SetUpHaskellBuild b) -> b
185+
178186
data HaskellProjectTypeV4
179187
= HaskellProjectV4TypeReplOnly
180188
| HaskellProjectV4TypeBasic

0 commit comments

Comments
 (0)