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

Description

The main module of nvfetcher. If you want to create CLI program with it, it's enough to import only this module.

Example:

module Main where

import NvFetcher

main :: IO ()
main = defaultMain defaultArgs packageSet

packageSet :: PackageSet ()
packageSet = do
  define $ package "feeluown-core" fromPypi "feeluown"
  define $ package "qliveplayer" fromGitHub (IsoaSFlus, QLivePlayer)

You can find more examples of packages in Main_example.hs.

Running the created program:

  • main -- abbreviation of main build
  • main build -- build nix sources expr from given packageSet
  • main clean -- delete .shake dir and generated nix file
  • main -j -- build with parallelism

All shake options are inherited.

Synopsis

Documentation

data Args Source #

Arguments for running nvfetcher

Constructors

Args 

Fields

defaultArgs :: Args Source #

Default arguments of defaultMain

Output file path is sources.nix.

runNvFetcher :: Args -> PackageSet () -> IO () Source #

Entry point of nvfetcher

runNvFetcherWith Source #

Arguments

:: [OptDescr (Either String a)]

Custom flags

-> ([a] -> IO (Maybe (Args, PackageSet ())))

Continuation, the build system won't run if it returns Nothing

-> IO () 

Like runNvFetcher but allows to define custom cli flags