Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/emptyflash/ivor

The steam powered Idris package manager
https://github.com/emptyflash/ivor

dependency-manager idris package package-manager

Last synced: 10 days ago
JSON representation

The steam powered Idris package manager

Awesome Lists containing this project

README

        

# Ivor
The steam powered Idris package manager. Ivor gives you isolated and reproducable
Idris builds.

## Getting started

Ivor currently doesn't ship prebuilt binaries, so you'll have to install the
dependencies and build it manually:

```
git clone https://github.com/ziman/lightyear.git
cd lightyear
git checkout dbcd847ed7a9e62fa0b502b3d89cca43a96f256c
idris --install lightyear.ipkg
cd ..

git clone https://github.com/emptyflash/tomladris.git
cd tomladris
git checkout ec324128ebe8b446e84d8be60b0ed085d07fd36d
idris --install tomladris.ipkg
cd ..

git clone https://github.com/emptyflash/idris-ipkg-parser
cd idris-ipkg-parser
git checkout 35cc2f54d4f3b3710f637d0a8c897bfbb32fe183
idris --install ipkgparser.ipkg
cd ..

idris --build ivor.ipkg
mv ivor.run /usr/local/ivor
```

Next you can create an ivor.toml file in the root of your project
that looks something like this:
```
name = "ivor"
version = "1.0.0"
description = "The steam powered Idris package manager"

opts = "-p effects -p contrib"
main = "Ivor"
executable = "ivor.run"
sourceDirectory = "src"

[dependencies]
ziman/lightyear = "dbcd847ed7a9e62fa0b502b3d89cca43a96f256c"
emptyflash/tomladris = "ec324128ebe8b446e84d8be60b0ed085d07fd36d"
emptyflash/idris-ipkg-parser = "35cc2f54d4f3b3710f637d0a8c897bfbb32fe183"
```

The dependencies look like `user/repo = "git sha"`. This is likely to
change as I figure out how to handle transitive dependencies. Right now
you'll have to flatten out your deps and make sure they're in the right
order. All the other flags match up with Idris' ipkg file.

Once you have an ivor.toml you can run:

* `ivor install` to install the dependencies,
* `ivor build` to build your project,
* `ivor repl` to hop in the repl with all of your dependencies,
* `ivor test` to run the tests.

If you have any problems please open an issue!