Copyright | (c) 2021 berberman |
---|---|
License | MIT |
Maintainer | berberman <berberman@yandex.com> |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
NixFetcher
is used to describe how to fetch package sources.
There are two types of fetchers overall:
As you can see the type signature of prefetch
:
a fetcher will be filled with the fetch result (hash) after the prefetch.
Synopsis
- data NixFetcher (k :: Prefetch)
- data Prefetch
- = Fresh
- | Prefetched
- class ToNixExpr a where
- type family PrefetchResult (k :: Prefetch) where ...
- prefetchRule :: Rules ()
- prefetch :: NixFetcher Fresh -> Action (NixFetcher Prefetched)
- gitHubFetcher :: (Text, Text) -> PackageFetcher
- pypiFetcher :: Text -> PackageFetcher
- gitHubReleaseFetcher :: (Text, Text) -> Text -> PackageFetcher
- gitFetcher :: Text -> PackageFetcher
- urlFetcher :: Text -> NixFetcher Fresh
Types
data NixFetcher (k :: Prefetch) Source #
If the package is prefetched, then we can obtain the SHA256
FetchGit | |
| |
FetchUrl | |
|
Instances
class ToNixExpr a where Source #
Types can be converted into nix expr
Instances
ToNixExpr Bool Source # | |
ToNixExpr Version Source # | |
ToNixExpr (NixFetcher 'Fresh) Source # | |
Defined in NvFetcher.NixFetcher | |
ToNixExpr (NixFetcher 'Prefetched) Source # | |
Defined in NvFetcher.NixFetcher toNixExpr :: NixFetcher 'Prefetched -> NixExpr Source # |
type family PrefetchResult (k :: Prefetch) where ... Source #
Prefetched fetchers hold hashes
Rules
prefetchRule :: Rules () Source #
Rules of nix fetcher
prefetch :: NixFetcher Fresh -> Action (NixFetcher Prefetched) Source #
Run nix fetcher
Functions
:: (Text, Text) | owner and repo |
-> PackageFetcher |
Create a fetcher from github repo
pypiFetcher :: Text -> PackageFetcher Source #
Create a fetcher from pypi
:: (Text, Text) | owner and repo |
-> Text | file name |
-> PackageFetcher |
Create a fetcher from github release
gitFetcher :: Text -> PackageFetcher Source #
Create a fetcher from git url
urlFetcher :: Text -> NixFetcher Fresh Source #
Create a fetcher from url