nvfetcher-0.1.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 :: Prefetch) Source #

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

Instances

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

Defined in NvFetcher.Types

Methods

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

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

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

Defined in NvFetcher.Types

Show (PrefetchResult 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 (PrefetchResult k) => Hashable (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

Methods

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

hash :: NixFetcher k -> Int #

Binary (PrefetchResult 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 (PrefetchResult k) => NFData (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

Methods

rnf :: NixFetcher k -> () #

ToNixExpr (NixFetcher 'Fresh) Source # 
Instance details

Defined in NvFetcher.NixFetcher

ToNixExpr (NixFetcher 'Prefetched) Source # 
Instance details

Defined in NvFetcher.NixFetcher

type Rep (NixFetcher k) Source # 
Instance details

Defined in NvFetcher.Types

type RuleResult (NixFetcher 'Fresh) Source # 
Instance details

Defined in NvFetcher.Types

data Prefetch Source #

Prefetch status

Constructors

Fresh 
Prefetched 

class ToNixExpr a where Source #

Types can be converted into nix expr

Methods

toNixExpr :: a -> NixExpr Source #

Instances

Instances details
ToNixExpr Bool Source # 
Instance details

Defined in NvFetcher.NixFetcher

ToNixExpr Version Source # 
Instance details

Defined in NvFetcher.NixFetcher

ToNixExpr (NixFetcher 'Fresh) Source # 
Instance details

Defined in NvFetcher.NixFetcher

ToNixExpr (NixFetcher 'Prefetched) Source # 
Instance details

Defined in NvFetcher.NixFetcher

type family PrefetchResult (k :: Prefetch) 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