| Copyright | (c) 2021-2025 berberman |
|---|---|
| License | MIT |
| Maintainer | berberman <[email protected]> |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
NvFetcher.NixFetcher
Description
NixFetcher is used to describe how to fetch package sources.
There are five types of fetchers overall:
FetchGit-- nix-prefetch-gitFetchGitHub-- nix-prefetch-git/nix-prefetch-urlFetchUrl-- nix-prefetch-urlFetchTarball-- nix-prefetch-urlFetchDocker-- nix-prefetch-docker
As you can see the type signature of prefetch:
a fetcher will be filled with the fetch result (hash) after the prefetch.
Synopsis
- data RunFetch = RunFetch ForceFetch (NixFetcher 'Fresh)
- data ForceFetch
- data NixFetcher (k :: FetchStatus)
- = FetchGit {
- _furl :: Text
- _rev :: Version
- _deepClone :: Bool
- _fetchSubmodules :: Bool
- _leaveDotGit :: Bool
- _sparseCheckout :: [Text]
- _name :: Maybe Text
- _sha256 :: FetchResult Checksum k
- | FetchGitHub {
- _fowner :: Text
- _frepo :: Text
- _rev :: Version
- _deepClone :: Bool
- _fetchSubmodules :: Bool
- _leaveDotGit :: Bool
- _sparseCheckout :: [Text]
- _name :: Maybe Text
- _sha256 :: FetchResult Checksum k
- | FetchUrl { }
- | FetchTarball {
- _furl :: Text
- _sha256 :: FetchResult Checksum k
- | FetchDocker {
- _imageName :: Text
- _imageTag :: Text
- _imageDigest :: FetchResult ContainerDigest k
- _sha256 :: FetchResult Checksum k
- _fos :: Maybe Text
- _farch :: Maybe Text
- _finalImageName :: Maybe Text
- _finalImageTag :: Maybe Text
- _tlsVerify :: Maybe Bool
- = FetchGit {
- data FetchStatus
- type family FetchResult a (k :: FetchStatus) where ...
- prefetchRule :: Rules ()
- prefetch :: NixFetcher 'Fresh -> ForceFetch -> Action (Maybe (NixFetcher 'Fetched))
- gitHubFetcher :: (Text, Text) -> PackageFetcher
- pypiFetcher :: Text -> PackageFetcher
- gitHubReleaseFetcher :: (Text, Text) -> Text -> PackageFetcher
- gitHubReleaseFetcher' :: (Text, Text) -> (Version -> Text) -> PackageFetcher
- gitFetcher :: Text -> PackageFetcher
- urlFetcher :: Text -> NixFetcher 'Fresh
- urlFetcher' :: Text -> Maybe Text -> NixFetcher 'Fresh
- openVsxFetcher :: (Text, Text) -> PackageFetcher
- vscodeMarketplaceFetcher :: (Text, Text) -> PackageFetcher
- tarballFetcher :: Text -> NixFetcher 'Fresh
Types
The input of prefetch rule
Constructors
| RunFetch ForceFetch (NixFetcher 'Fresh) |
Instances
data ForceFetch Source #
Whether to cache the fetched sha256
ForceFetch indicates alwaysRerun the fetcher rule
Constructors
| ForceFetch | |
| NoForceFetch |
Instances
| Generic ForceFetch Source # | |||||
Defined in NvFetcher.Types Associated Types
| |||||
| Show ForceFetch Source # | |||||
Defined in NvFetcher.Types Methods showsPrec :: Int -> ForceFetch -> ShowS # show :: ForceFetch -> String # showList :: [ForceFetch] -> ShowS # | |||||
| Binary ForceFetch Source # | |||||
Defined in NvFetcher.Types | |||||
| Default ForceFetch Source # | |||||
Defined in NvFetcher.Types Methods def :: ForceFetch # | |||||
| NFData ForceFetch Source # | |||||
Defined in NvFetcher.Types Methods rnf :: ForceFetch -> () # | |||||
| Eq ForceFetch Source # | |||||
Defined in NvFetcher.Types | |||||
| Ord ForceFetch Source # | |||||
Defined in NvFetcher.Types Methods compare :: ForceFetch -> ForceFetch -> Ordering # (<) :: ForceFetch -> ForceFetch -> Bool # (<=) :: ForceFetch -> ForceFetch -> Bool # (>) :: ForceFetch -> ForceFetch -> Bool # (>=) :: ForceFetch -> ForceFetch -> Bool # max :: ForceFetch -> ForceFetch -> ForceFetch # min :: ForceFetch -> ForceFetch -> ForceFetch # | |||||
| Hashable ForceFetch Source # | |||||
Defined in NvFetcher.Types | |||||
| Pretty ForceFetch Source # | |||||
Defined in NvFetcher.Types | |||||
| type Rep ForceFetch Source # | |||||
data NixFetcher (k :: FetchStatus) Source #
If the package is prefetched, then we can obtain the SHA256
Constructors
| FetchGit | |
Fields
| |
| FetchGitHub | |
Fields
| |
| FetchUrl | |
| FetchTarball | |
Fields
| |
| FetchDocker | |
Fields
| |
Instances
| ToJSON (NixFetcher 'Fetched) Source # | |||||
Defined in NvFetcher.Types Methods toJSON :: NixFetcher 'Fetched -> Value # toEncoding :: NixFetcher 'Fetched -> Encoding # toJSONList :: [NixFetcher 'Fetched] -> Value # toEncodingList :: [NixFetcher 'Fetched] -> Encoding # omitField :: NixFetcher 'Fetched -> Bool # | |||||
| Generic (NixFetcher k) Source # | |||||
Defined in NvFetcher.Types Associated Types
| |||||
| ForFetchResult Show k => Show (NixFetcher k) Source # | |||||
Defined in NvFetcher.Types Methods showsPrec :: Int -> NixFetcher k -> ShowS # show :: NixFetcher k -> String # showList :: [NixFetcher k] -> ShowS # | |||||
| ForFetchResult Binary k => Binary (NixFetcher k) Source # | |||||
Defined in NvFetcher.Types | |||||
| ForFetchResult NFData k => NFData (NixFetcher k) Source # | |||||
Defined in NvFetcher.Types Methods rnf :: NixFetcher k -> () # | |||||
| ForFetchResult Eq k => Eq (NixFetcher k) Source # | |||||
Defined in NvFetcher.Types | |||||
| ForFetchResult Ord k => Ord (NixFetcher k) Source # | |||||
Defined in NvFetcher.Types Methods compare :: NixFetcher k -> NixFetcher k -> Ordering # (<) :: NixFetcher k -> NixFetcher k -> Bool # (<=) :: NixFetcher k -> NixFetcher k -> Bool # (>) :: NixFetcher k -> NixFetcher k -> Bool # (>=) :: NixFetcher k -> NixFetcher k -> Bool # max :: NixFetcher k -> NixFetcher k -> NixFetcher k # min :: NixFetcher k -> NixFetcher k -> NixFetcher k # | |||||
| ForFetchResult Hashable k => Hashable (NixFetcher k) Source # | |||||
Defined in NvFetcher.Types | |||||
| ToNixExpr (NixFetcher 'Fetched) Source # | |||||
Defined in NvFetcher.NixExpr | |||||
| Pretty (NixFetcher k) Source # | |||||
Defined in NvFetcher.Types | |||||
| type Rep (NixFetcher k) Source # | |||||
Defined in NvFetcher.Types type Rep (NixFetcher k) = D1 ('MetaData "NixFetcher" "NvFetcher.Types" "nvfetcher-0.7.0.0-AhFFh7reJc9KmNyxRtjlmD" 'False) ((C1 ('MetaCons "FetchGit" 'PrefixI 'True) (((S1 ('MetaSel ('Just "_furl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "_rev") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Version)) :*: (S1 ('MetaSel ('Just "_deepClone") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_fetchSubmodules") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just "_leaveDotGit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_sparseCheckout") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text])) :*: (S1 ('MetaSel ('Just "_name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_sha256") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FetchResult Checksum k))))) :+: C1 ('MetaCons "FetchGitHub" 'PrefixI 'True) (((S1 ('MetaSel ('Just "_fowner") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "_frepo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "_rev") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Version) :*: S1 ('MetaSel ('Just "_deepClone") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just "_fetchSubmodules") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_leaveDotGit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "_sparseCheckout") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text]) :*: (S1 ('MetaSel ('Just "_name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_sha256") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FetchResult Checksum k))))))) :+: (C1 ('MetaCons "FetchUrl" 'PrefixI 'True) (S1 ('MetaSel ('Just "_furl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: (S1 ('MetaSel ('Just "_name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_sha256") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FetchResult Checksum k)))) :+: (C1 ('MetaCons "FetchTarball" 'PrefixI 'True) (S1 ('MetaSel ('Just "_furl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "_sha256") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FetchResult Checksum k))) :+: C1 ('MetaCons "FetchDocker" 'PrefixI 'True) (((S1 ('MetaSel ('Just "_imageName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "_imageTag") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "_imageDigest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FetchResult ContainerDigest k)) :*: S1 ('MetaSel ('Just "_sha256") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FetchResult Checksum k)))) :*: ((S1 ('MetaSel ('Just "_fos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_farch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))) :*: (S1 ('MetaSel ('Just "_finalImageName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: (S1 ('MetaSel ('Just "_finalImageTag") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_tlsVerify") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool))))))))) | |||||
type family FetchResult a (k :: FetchStatus) where ... Source #
Prefetched fetchers hold hashes
Equations
| FetchResult _1 'Fresh = () | |
| FetchResult a 'Fetched = a |
Rules
prefetchRule :: Rules () Source #
Rules of nix fetcher
prefetch :: NixFetcher 'Fresh -> ForceFetch -> Action (Maybe (NixFetcher 'Fetched)) Source #
Run nix fetcher
Functions
Arguments
| :: (Text, Text) | owner and repo |
| -> PackageFetcher |
Create a fetcher from github repo
pypiFetcher :: Text -> PackageFetcher Source #
Create a fetcher from pypi
Arguments
| :: (Text, Text) | owner and repo |
| -> Text | file name |
| -> PackageFetcher |
Create a fetcher from github release
gitHubReleaseFetcher' Source #
Arguments
| :: (Text, Text) | owner and repo |
| -> (Version -> Text) | file name computed from version |
| -> 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
urlFetcher' :: Text -> Maybe Text -> NixFetcher 'Fresh Source #
Create a fetcher from url specifying the file name
Arguments
| :: (Text, Text) | publisher and extension name |
| -> PackageFetcher |
Create a fetcher from openvsx
vscodeMarketplaceFetcher Source #
Arguments
| :: (Text, Text) | publisher and extension name |
| -> PackageFetcher |
Create a fetcher from vscode marketplace
tarballFetcher :: Text -> NixFetcher 'Fresh Source #
Create a fetcher from url, using fetchTarball