@@ -6,15 +6,14 @@ import qualified Cabal2Nix hiding (gpd2nix)
66import  qualified  Data.ByteString.Lazy  as  BSL 
77import  Data.Foldable  (for_ )
88import  qualified  Data.Text.Encoding  as  T 
9- import  Distribution.Client.DistDirLayout  (DistDirLayout  (distDirectory ,  distProjectCacheFile ,  distProjectFile ))
9+ import  Distribution.Client.DistDirLayout  (DistDirLayout  (.. ))
1010import  Distribution.Client.GlobalFlags 
1111import  Distribution.Client.HashValue  (HashValue , showHashValue )
1212import  qualified  Distribution.Client.InstallPlan  as  InstallPlan 
1313import  Distribution.Client.NixStyleOptions  (NixStyleFlags  (.. ), defaultNixStyleFlags , nixStyleOptions )
1414import  Distribution.Client.ProjectConfig 
1515import  Distribution.Client.ProjectOrchestration 
16- import  Distribution.Client.ProjectPlanOutput  (writePlanExternalRepresentation )
17- import  Distribution.Client.ProjectPlanning  (ElaboratedConfiguredPackage  (.. ), rebuildInstallPlan , availableTargets )
16+ import  Distribution.Client.ProjectPlanning  (ElaboratedConfiguredPackage  (.. ), availableTargets , rebuildInstallPlan )
1817import  Distribution.Client.Setup 
1918import  Distribution.Client.Types.PackageLocation  (PackageLocation  (.. ))
2019import  Distribution.Client.Types.Repo  (LocalRepo  (.. ), RemoteRepo  (.. ), Repo  (.. ))
@@ -25,14 +24,15 @@ import Distribution.Pretty (prettyShow)
2524import  Distribution.Simple.Command 
2625import  Distribution.Simple.Flag 
2726import  qualified  Distribution.Simple.Utils  as  Cabal 
28- import  Distribution.Types.SourceRepo  (KnownRepoType  (Git ), RepoType  (.. ))
27+ import  Distribution.Types.SourceRepo  (KnownRepoType  (.. ), RepoType  (.. ))
2928import  Distribution.Verbosity  (Verbosity )
3029import  qualified  Distribution.Verbosity  as  Verbosity 
3130import  Freeze  (projectFreezeConfig )
3231import  Nix.Expr 
3332import  Nix.Pretty  (prettyNix )
3433import  Prettyprinter  (Doc )
3534import  Prettyprinter.Render.Text  (hPutDoc )
35+ import  ProjectPlanOutput  (writePlanExternalRepresentation )
3636import  System.Environment  (getArgs )
3737import  System.FilePath 
3838import  System.IO  (IOMode  (WriteMode ), hClose , openFile )
@@ -46,35 +46,39 @@ main = do
4646    CommandErrors  errs ->  putStrLn  $  " commandErrors: " ++  show  errs
4747    CommandReadyToGo  (mkflags, _commandParse) -> 
4848      let  globalFlags =  defaultGlobalFlags
49-           flags@ NixStyleFlags   {configFlags} =  mkflags (commandDefaultFlags cmdUI)
49+           flags@ NixStyleFlags {configFlags} =  mkflags (commandDefaultFlags cmdUI)
5050          verbosity =  fromFlagOrDefault Verbosity. normal (configVerbosity configFlags)
5151          cliConfig =  commandLineFlagsToProjectConfig globalFlags flags mempty 
5252       in  installPlanAction verbosity cliConfig
5353
5454cmdUI  ::  CommandUI  (NixStyleFlags  () )
5555cmdUI = 
5656  CommandUI 
57-     { commandName =  " " , 
58-        commandSynopsis =  " Makes an install-plan" , 
59-        commandUsage =  (" Usage: " ++ ), 
60-        commandDescription =  Nothing , 
61-        commandNotes =  Nothing , 
62-        commandDefaultFlags =  defaultNixStyleFlags () , 
63-        commandOptions =  nixStyleOptions (const  [] )
57+     { commandName =  " " 
58+     ,  commandSynopsis =  " Makes an install-plan" 
59+     ,  commandUsage =  (" Usage: " ++ )
60+     ,  commandDescription =  Nothing 
61+     ,  commandNotes =  Nothing 
62+     ,  commandDefaultFlags =  defaultNixStyleFlags () 
63+     ,  commandOptions =  nixStyleOptions (const  [] )
6464    }
6565
6666--  The following is adapted from cabal-install's Distribution.Client.CmdFreeze
6767installPlanAction  ::  Verbosity  ->  ProjectConfig  ->  IO () 
6868installPlanAction verbosity cliConfig =  do 
69-   ProjectBaseContext   {distDirLayout, cabalDirLayout, projectConfig, localPackages} <- 
69+   ProjectBaseContext {distDirLayout, cabalDirLayout, projectConfig, localPackages} <- 
7070    establishProjectBaseContext verbosity cliConfig OtherCommand 
7171
7272  (_improvedPlan, elaboratedPlan, elaboratedSharedConfig, totalIndexState, activeRepos) <- 
7373    rebuildInstallPlan verbosity distDirLayout cabalDirLayout projectConfig localPackages Nothing 
7474
7575  --  Write plan.json
7676  Cabal. notice verbosity $  " Writing plan.json to " ++  distProjectCacheFile distDirLayout " plan.json" 
77-   writePlanExternalRepresentation distDirLayout elaboratedPlan elaboratedSharedConfig (availableTargets elaboratedPlan)
77+   writePlanExternalRepresentation
78+     distDirLayout
79+     elaboratedPlan
80+     elaboratedSharedConfig
81+     (availableTargets elaboratedPlan)
7882
7983  --  Write cabal.freeze
8084  let  freezeConfig =  projectFreezeConfig elaboratedPlan totalIndexState activeRepos
@@ -90,12 +94,12 @@ installPlanAction verbosity cliConfig = do
9094
9195  for_ ecps $ 
9296    \ ElaboratedConfiguredPackage 
93-         { elabPkgSourceId, 
94-           elabPkgSourceLocation, 
95-           elabPkgSourceHash, 
96-           elabLocalToProject, 
97-           elabPkgDescriptionOverride
98-         } ->  do 
97+       { elabPkgSourceId
98+       ,  elabPkgSourceLocation
99+       ,  elabPkgSourceHash
100+       ,  elabLocalToProject
101+       ,  elabPkgDescriptionOverride
102+       } ->  do 
99103        let  nixFile =  cabalFilesDir </>  prettyShow (pkgName elabPkgSourceId) <.>  " nix" 
100104        for_ elabPkgDescriptionOverride $  \ pkgTxt ->  do 
101105          --  In the plan we have elabPkgDescription :: PackageDescription which is the cabal file after
@@ -123,8 +127,8 @@ packageLocation2Src pkgSrcLoc pkgSrcHash = case pkgSrcLoc of
123127    (SourceRepositoryPackage  (KnownRepoType  Git ) location (Just  tag) branch subdir [] ) -> 
124128      Cabal2Nix. Git
125129    _otherCases ->  error  $  " Repository " <>  show  sourceRepoMaybe <>  "  not supported" 
126-    where 
127-      mSrcHash =  showHashValue <$>  pkgSrcHash
130+  where 
131+   mSrcHash =  showHashValue <$>  pkgSrcHash
128132
129133writeDoc  ::  FilePath ->  Doc  ann  ->  IO () 
130134writeDoc file doc =  do 
0 commit comments