Copyright | (c) 2021-2022 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 three types of fetchers overall:
FetchGit
-- nix-prefetch fetchgitFetchGitHub
-- nix-prefetch fetchFromGitHubFetchUrl
-- nix-prefetch fetchurl
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 :: FetchStatus)
- = FetchGit {
- _furl :: Text
- _rev :: Version
- _deepClone :: Bool
- _fetchSubmodules :: Bool
- _leaveDotGit :: Bool
- _name :: Maybe Text
- _sha256 :: FetchResult k
- | FetchGitHub {
- _fowner :: Text
- _frepo :: Text
- _rev :: Version
- _deepClone :: Bool
- _fetchSubmodules :: Bool
- _leaveDotGit :: Bool
- _name :: Maybe Text
- _sha256 :: FetchResult k
- | FetchUrl { }
- | FetchTarball {
- _furl :: Text
- _sha256 :: FetchResult k
- = FetchGit {
- data FetchStatus
- type family FetchResult (k :: FetchStatus) where ...
- prefetchRule :: Rules ()
- prefetch :: NixFetcher Fresh -> Action (NixFetcher Fetched)
- gitHubFetcher :: (Text, Text) -> PackageFetcher
- pypiFetcher :: Text -> PackageFetcher
- gitHubReleaseFetcher :: (Text, Text) -> Text -> PackageFetcher
- gitFetcher :: Text -> PackageFetcher
- urlFetcher :: Text -> NixFetcher Fresh
- openVsxFetcher :: (Text, Text) -> PackageFetcher
- vscodeMarketplaceFetcher :: (Text, Text) -> PackageFetcher
- tarballFetcher :: Text -> NixFetcher Fresh
Types
data NixFetcher (k :: FetchStatus) Source #
If the package is prefetched, then we can obtain the SHA256
FetchGit | |
| |
FetchGitHub | |
| |
FetchUrl | |
FetchTarball | |
|
Instances
type family FetchResult (k :: FetchStatus) where ... Source #
Prefetched fetchers hold hashes
FetchResult Fresh = () | |
FetchResult Fetched = Checksum |
Rules
prefetchRule :: Rules () Source #
Rules of nix fetcher
prefetch :: NixFetcher Fresh -> Action (NixFetcher Fetched) 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
:: (Text, Text) | publisher and extension name |
-> PackageFetcher |
Create a fetcher from openvsx
vscodeMarketplaceFetcher Source #
:: (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