File tree 5 files changed +33
-12
lines changed
src/Distribution/Client/Init/Interactive
tests/UnitTests/Distribution/Client/Init
cabal-testsuite/PackageTests/Init
5 files changed +33
-12
lines changed Original file line number Diff line number Diff line change 1
- {-# LANGUAGE LambdaCase #-}
1
+ {-# LANGUAGE LambdaCase, MultiWayIf #-}
2
2
-----------------------------------------------------------------------------
3
3
-- |
4
4
-- Module : Distribution.Client.Init.Command
@@ -413,17 +413,22 @@ testDirsPrompt flags = getTestDirs flags $ do
413
413
414
414
languagePrompt :: Interactive m => InitFlags -> String -> m Language
415
415
languagePrompt flags pkgType = getLanguage flags $ do
416
- lang <- promptList (" Choose a language for your " ++ pkgType)
417
- [" Haskell2010" , " Haskell98" ]
418
- (DefaultPrompt " Haskell2010" )
416
+ let h2010 = " Haskell2010"
417
+ h98 = " Haskell98"
418
+ ghc2021 = " GHC2021 (requires at least GHC 9.2)"
419
+
420
+ l <- promptList (" Choose a language for your " ++ pkgType)
421
+ [h2010, h98, ghc2021]
422
+ (DefaultPrompt h2010)
419
423
Nothing
420
424
True
421
425
422
- case lang of
423
- " Haskell2010" -> return Haskell2010
424
- " Haskell98" -> return Haskell98
425
- l | all isAlphaNum l -> return $ UnknownLanguage l
426
- _ -> do
426
+ if
427
+ | l == h2010 -> return Haskell2010
428
+ | l == h98 -> return Haskell98
429
+ | l == ghc2021 -> return GHC2021
430
+ | all isAlphaNum l -> return $ UnknownLanguage l
431
+ | otherwise -> do
427
432
putStrLn
428
433
$ " \n The language must be alphanumeric. "
429
434
++ " Please enter a different language."
Original file line number Diff line number Diff line change @@ -912,15 +912,15 @@ interactiveTests srcDb = testGroup "Check top level getter functions"
912
912
]
913
913
, testGroup " Check languagePrompt output"
914
914
[ testNumberedPrompt " Language indices" (`languagePrompt` " test" )
915
- [Haskell2010 , Haskell98 ]
915
+ [Haskell2010 , Haskell98 , GHC2021 ]
916
916
, testSimplePrompt " Other language"
917
917
(`languagePrompt` " test" ) (UnknownLanguage " Haskell2022" )
918
- [ " 3 "
918
+ [ " 4 "
919
919
, " Haskell2022"
920
920
]
921
921
, testSimplePrompt " Invalid language"
922
922
(`languagePrompt` " test" ) Haskell2010
923
- [ " 3 "
923
+ [ " 4 "
924
924
, " Lang_TS!"
925
925
, " 1"
926
926
]
Original file line number Diff line number Diff line change
1
+ # cabal init
Original file line number Diff line number Diff line change
1
+ import Test.Cabal.Prelude
2
+
3
+ main = cabalTest $
4
+ withSourceCopyDir " app" $ do
5
+ cwd <- fmap testSourceCopyDir getTestEnv
6
+
7
+ buildOut <- withDirectory cwd $ do
8
+ cabalWithStdin " init" [" -i" ]
9
+ " 2\n\n 5\n\n\n 2\n\n\n\n\n\n\n\n 3\n\n "
10
+
11
+ assertFileDoesContain (cwd </> " app.cabal" ) " GHC2021"
Original file line number Diff line number Diff line change
1
+ synopsis: cabal init -i: add the GHC2021 language option
2
+ packages: cabal-install
3
+ prs: #8277
4
+ issues: #8265
You can’t perform that action at this time.
0 commit comments