nvfetcher-0.3.0.0: Generate nix sources expr for the latest version of packages
Copyright(c) 2021 berberman
LicenseMIT
Maintainerberberman <berberman@yandex.com>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

NvFetcher.NixFetcher

Description

NixFetcher is used to describe how to fetch package sources.

There are two types of fetchers overall:

  1. FetchGit -- nix-prefetch-git
  2. FetchUrl -- nix-prefetch-url

As you can see the type signature of prefetch: a fetcher will be filled with the fetch result (hash) after the prefetch.

Synopsis

Types

data NixFetcher (k :: FetchStatus) Source #

If the package is prefetched, then we can obtain the SHA256

Instances

Instances details
Eq (FetchResult k) => Eq (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

Methods

(==) :: NixFetcher k -> NixFetcher k -> Bool #

(/=) :: NixFetcher k -> NixFetcher k -> Bool #

Ord (FetchResult k) => Ord (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

Show (FetchResult k) => Show (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

Generic (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

Associated Types

type Rep (NixFetcher k) :: Type -> Type #

Methods

from :: NixFetcher k -> Rep (NixFetcher k) x #

to :: Rep (NixFetcher k) x -> NixFetcher k #

Hashable (FetchResult k) => Hashable (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

Methods

hashWithSalt :: Int -> NixFetcher k -> Int #

hash :: NixFetcher k -> Int #

Binary (FetchResult k) => Binary (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

Methods

put :: NixFetcher k -> Put #

get :: Get (NixFetcher k) #

putList :: [NixFetcher k] -> Put #

NFData (FetchResult k) => NFData (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

Methods

rnf :: NixFetcher k -> () #

ToNixExpr (NixFetcher 'Fresh) Source # 
Instance details

Defined in NvFetcher.NixExpr

ToNixExpr (NixFetcher 'Fetched) Source # 
Instance details

Defined in NvFetcher.NixExpr

type Rep (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

type RuleResult (NixFetcher 'Fresh) Source # 
Instance details

Defined in NvFetcher.Types

data FetchStatus Source #

Fetch status

Constructors

Fresh 
Fetched 

type family FetchResult (k :: FetchStatus) where ... Source #

Prefetched fetchers hold hashes

Rules

prefetchRule :: Rules () Source #

Rules of nix fetcher

Functions

gitHubFetcher Source #

Arguments

:: (Text, Text)

owner and repo

-> PackageFetcher 

Create a fetcher from github repo

pypiFetcher :: Text -> PackageFetcher Source #

Create a fetcher from pypi

gitHubReleaseFetcher Source #

Arguments

:: (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