Copyright | (c) 2021-2022 berberman |
---|---|
License | MIT |
Maintainer | berberman <[email protected]> |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
The main module of nvfetcher. If you want to create CLI program with it, it's enough to import only this module.
Example:
module Main where import NvFetcher main :: IO () main = runNvFetcher packageSet packageSet :: PackageSet () packageSet = do define $ package "feeluown-core"fromPypi
"feeluown" define $ package "qliveplayer"fromGitHub
(THMonster, QLivePlayer)
You can find more examples of packages in Main_example.hs
.
Running the created program:
main
-- abbreviation ofmain build
main build
-- build nix sources expr from givenpackageSet
main clean
-- delete .shake dir and generated nix file
All shake options are inherited.
Synopsis
- runNvFetcher :: PackageSet () -> IO ()
- runNvFetcher' :: Config -> PackageSet () -> IO ()
- runNvFetcherNoCLI :: Config -> Target -> PackageSet () -> IO ()
- applyCliOptions :: Config -> CLIOptions -> IO Config
- parseLastVersions :: FilePath -> IO (Maybe (Map PackageKey Version))
- module NvFetcher.PackageSet
- module NvFetcher.Types
- module NvFetcher.Types.ShakeExtras
Documentation
runNvFetcher :: PackageSet () -> IO () Source #
Run nvfetcher with CLI options
This function calls runNvFetcherNoCLI
, using def
Config
overridden by CLIOptions
.
Use this function to create your own Haskell executable program.
runNvFetcher' :: Config -> PackageSet () -> IO () Source #
Similar to runNvFetcher
, but uses custom config
instead of def
overridden by CLIOptions
runNvFetcherNoCLI :: Config -> Target -> PackageSet () -> IO () Source #
Entry point of nvfetcher
applyCliOptions :: Config -> CLIOptions -> IO Config Source #
Apply CLIOptions
to Config
parseLastVersions :: FilePath -> IO (Maybe (Map PackageKey Version)) Source #
Parse generated.nix
module NvFetcher.PackageSet
module NvFetcher.Types
module NvFetcher.Types.ShakeExtras