idris-1.3.4: Functional Programming Language with Dependent Types
LicenseBSD3
MaintainerThe Idris Community.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Idris.Package

Description

 
Synopsis

read the package description

check all the library dependencies exist

invoke the makefile if there is one

invoke idris on each module, with idris_opts

install everything into datadir/pname, if install flag is set

getPkgDesc :: FilePath -> IO PkgDesc Source #

buildPkg Source #

Arguments

:: [Opt]

Command line options

-> Bool

Provide Warnings

-> (Bool, FilePath)

(Should we install, Location of iPKG file)

-> IO () 

Run the package through the idris compiler.

checkPkg Source #

Arguments

:: [Opt]

Command line Options

-> Bool

Show Warnings

-> Bool

quit on failure

-> FilePath

Path to ipkg file.

-> IO () 

Type check packages only

This differs from build in that executables are not built, if the package contains an executable.

replPkg Source #

Arguments

:: [Opt]

Command line Options

-> FilePath

Path to ipkg file.

-> Idris () 

Check a package and start a REPL.

This function only works with packages that have a main module.

cleanPkg Source #

Arguments

:: [Opt]

Command line options.

-> FilePath

Path to ipkg file.

-> IO () 

Clean Package build files

documentPkg Source #

Arguments

:: [Opt]

Command line options.

-> (Bool, FilePath)

(Should we install?, Path to ipkg file).

-> IO () 

Generate IdrisDoc for package TODO: Handle case where module does not contain a matching namespace E.g. from prelude.ipkg: IO, Prelude.Chars, Builtins

Issue number #1572 on the issue tracker https://github.com/idris-lang/Idris-dev/issues/1572

testPkg Source #

Arguments

:: [Opt]

Command line options.

-> FilePath

Path to ipkg file.

-> IO ExitCode 

Build a package with a sythesized main function that runs the tests

installPkg Source #

Arguments

:: [String]

Alternate install location

-> PkgDesc

iPKG file.

-> IO () 

Install package

auditPackage :: Bool -> PkgDesc -> IO () Source #

buildMods :: [Opt] -> [Name] -> IO (Maybe IState) Source #

testLib :: Bool -> PkgName -> String -> IO Bool Source #

rmIBC :: Name -> IO () Source #

rmIdx :: PkgName -> IO () Source #

rmExe :: String -> IO () Source #

toIBCFile :: Name -> [Char] Source #

installIBC :: String -> PkgName -> Name -> IO () Source #

installIdx :: String -> PkgName -> IO () Source #

installObj :: String -> PkgName -> String -> IO () Source #

mkDirCmd :: String Source #

inPkgDir :: PkgDesc -> IO a -> IO a Source #

makeTarget :: Maybe String -> Maybe String -> IO () Source #

Invoke a Makefile's target with an enriched system environment

make :: Maybe String -> IO () Source #

Invoke a Makefile's default target.

clean :: Maybe String -> IO () Source #

Invoke a Makefile's clean target.

mergeOptions Source #

Arguments

:: [Opt]

The command line options

-> [Opt]

The package options

-> Either String [Opt] 

Merge an option list representing the command line options into those specified for a package description.

This is not a complete union between the two options sets. First, to prevent important package specified options from being overwritten. Second, the semantics for this merge are not fully defined.

A discussion for this is on the issue tracker: https://github.com/idris-lang/Idris-dev/issues/1448