packages feed

horizon-gen-nix 0.3.0.1 → 0.3.1.0

raw patch · 6 files changed

+31/−45 lines, 6 files

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # Changelog for horizon-gen-nix +## v0.3.1++* Remove broken --force flag.+ ## v0.3.0  * Support horizon-spec-0.3.0
horizon-gen-nix.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               horizon-gen-nix-version:            0.3.0.1+version:            0.3.1.0 synopsis:           Generate nix expressions from horizon-spec definitions description:        Generate nix expressions from horizon-spec definitions category:           Package Management, Nix@@ -52,7 +52,7 @@     , directory     , distribution-nixpkgs     , either-    , horizon-spec          >=0.3 && <0.4+    , horizon-spec          >=0.3  && <0.4     , language-nix     , lens     , optparse-applicative
src/Horizon/Gen/Nix.hs view
@@ -7,14 +7,12 @@   ) where  import           Dhall                                   (auto, inputFile)-import           Horizon.Gen.Nix.Options                 (Force,-                                                          HorizonCommand (MakePackageSetCommand, OverlayCommand),+import           Horizon.Gen.Nix.Options                 (HorizonCommand (MakePackageSetCommand, OverlayCommand),                                                           HorizonOptions (MkHorizonOptions),                                                           MakePackageSetOptions,                                                           OverlayOptions,                                                           fromInputFile,                                                           horizonGenNixOptsInfo,-                                                          optForce,                                                           optHorizonCommand,                                                           optInputFile,                                                           optOverlayFile,@@ -31,14 +29,14 @@ import           Path.Dhall                              ()  -makeMakePackageSet :: Force -> MakePackageSetOptions -> PackagesDirectory -> PackageSet -> IO ()-makeMakePackageSet f opts d xs = do-  writeHaskellPackages d f (packages xs)+makeMakePackageSet :: MakePackageSetOptions -> PackagesDirectory -> PackageSet -> IO ()+makeMakePackageSet opts d xs = do+  writeHaskellPackages d (packages xs)   writeMakePackageSet d (optPackageSetFile opts) xs -makeOverlay :: Force -> OverlayOptions -> PackagesDirectory -> Overlay -> IO ()-makeOverlay f opts d xs = do-  writeHaskellPackages d f (fromOverlay xs)+makeOverlay :: OverlayOptions -> PackagesDirectory -> Overlay -> IO ()+makeOverlay opts d xs = do+  writeHaskellPackages d (fromOverlay xs)   writeOverlay d (optOverlayFile opts) xs  horizonGenNix :: HorizonOptions -> IO ()@@ -47,10 +45,10 @@   in case optHorizonCommand of     MakePackageSetCommand opts -> do       x <- inputFile @PackageSet auto fp-      makeMakePackageSet optForce opts optPackagesDirectory x+      makeMakePackageSet opts optPackagesDirectory x     OverlayCommand opts -> do       x <- inputFile @Overlay auto fp-      makeOverlay optForce opts optPackagesDirectory x+      makeOverlay opts optPackagesDirectory x  main :: IO () main = do
src/Horizon/Gen/Nix/Options.hs view
@@ -4,7 +4,6 @@ module Horizon.Gen.Nix.Options   ( horizonGenNixOpts   , horizonGenNixOptsInfo-  , Force(..)   , InputFile (..)   , HorizonCommand (..)   , HorizonOptions (..)@@ -24,11 +23,11 @@ import           Horizon.Gen.Nix.Types.PackageSetFile    (PackageSetFile (MkPackageSetFile)) import           Options.Applicative                     (Parser, ParserInfo,                                                           ReadM, command,-                                                          eitherReader, flag',-                                                          help, helper, info,-                                                          long, metavar, option,-                                                          progDesc, short,-                                                          subparser, value)+                                                          eitherReader, help,+                                                          helper, info, long,+                                                          metavar, option,+                                                          progDesc, subparser,+                                                          value) import           Path                                    (File, Path, Rel,                                                           mkRelDir, mkRelFile,                                                           parseRelDir,@@ -141,20 +140,9 @@   OverlayCommand :: OverlayOptions -> HorizonCommand   deriving stock (Eq, Show) -type Force :: Type-newtype Force = MkForce Bool-  deriving stock (Eq, Show)--forceOption :: Parser Force-forceOption = flag' (MkForce True)-  (  long "force"-  <> short 'f'-  <> help "forcibly regenerate the packages")- type HorizonOptions :: Type data HorizonOptions where-  MkHorizonOptions :: { optForce :: Force-                      , optInputFile :: InputFile+  MkHorizonOptions :: { optInputFile :: InputFile                       , optPackagesDirectory :: PackagesDirectory                       , optHorizonCommand :: HorizonCommand} -> HorizonOptions   deriving stock (Eq, Show)@@ -174,8 +162,7 @@ horizonGenNixOpts :: Parser HorizonOptions horizonGenNixOpts =       MkHorizonOptions-  <$> forceOption-  <*> inputFileOption+  <$> inputFileOption   <*> packagesDirectoryOption   <*> horizonCommandOpts 
src/Horizon/Gen/Nix/Writers.hs view
@@ -9,12 +9,11 @@  ) where  import           Cabal2nix                               (Options, cabal2nix')-import           Control.Monad                           (forM_, when, (>=>))+import           Control.Monad                           (forM_, unless, (>=>)) import           Data.Map                                (keys, toList) import qualified Data.Text                               as T import           Distribution.Nixpkgs.Haskell.Derivation (Derivation) import           Horizon.Gen.Nix.Cabal2Nix.Options       (haskellPackageToCabal2NixOptions)-import           Horizon.Gen.Nix.Options                 (Force (MkForce)) import           Horizon.Gen.Nix.Pretty                  (prettyDerivation) import           Horizon.Gen.Nix.Types.OverlayFile       (OverlayFile (MkOverlayFile)) import           Horizon.Gen.Nix.Types.PackagesDirectory (PackagesDirectory (MkPackagesDirectory))@@ -67,14 +66,14 @@ writeDerivation :: Path b File -> Derivation -> IO () writeDerivation f = writeFile (toFilePath f) . show . prettyDerivation -writeHaskellPackage :: PackagesDirectory -> Force -> Name -> HaskellPackage -> IO ()-writeHaskellPackage (MkPackagesDirectory d) (MkForce b) (MkName f) y = do+writeHaskellPackage :: PackagesDirectory -> Name -> HaskellPackage -> IO ()+writeHaskellPackage (MkPackagesDirectory d) (MkName f) y = do   let o = haskellPackageToCabal2NixOptions y   createDirectoryIfMissing True (toFilePath d)   f' <- parseRelFile  $ T.unpack (f <> ".nix")   let j = d </> f'-  q <- doesFileExist $ toFilePath j-  when (b || not q) $ writeCabal2Nix j o+  q  <- doesFileExist $ toFilePath j+  unless q $ writeCabal2Nix j o -writeHaskellPackages :: PackagesDirectory -> Force -> PackageList -> IO ()-writeHaskellPackages f d = mapM_ (uncurry $ writeHaskellPackage f d) . toList . fromPackageList+writeHaskellPackages :: PackagesDirectory -> PackageList -> IO ()+writeHaskellPackages d = mapM_ (uncurry $ writeHaskellPackage d) . toList . fromPackageList
test/Spec.hs view
@@ -5,13 +5,12 @@ import           Control.Exception       (bracket_) import           Control.Monad           (forM_) import           Horizon.Gen.Nix         (horizonGenNix)-import           Horizon.Gen.Nix.Options (Force (MkForce),-                                          HorizonCommand (MakePackageSetCommand, OverlayCommand),+import           Horizon.Gen.Nix.Options (HorizonCommand (MakePackageSetCommand, OverlayCommand),                                           HorizonOptions (MkHorizonOptions),                                           InputFile (MkInputFile),                                           defaultMakePackageSetOptions,                                           defaultOverlayOptions,-                                          defaultPackagesDirectory, optForce,+                                          defaultPackagesDirectory,                                           optHorizonCommand, optInputFile,                                           optPackagesDirectory) import           Path                    (File, Path, Rel, mkRelFile,@@ -45,7 +44,6 @@     fp <- parseRelFile $ "test/data/" ++ s ++ "/input.dhall"     let opts = MkHorizonOptions                  { optHorizonCommand = cmd-                 , optForce = MkForce False                  , optPackagesDirectory = defaultPackagesDirectory                  , optInputFile = MkInputFile fp                  }