packages feed

starter-snake-haskell-1.1.0: README.md

# starter-snake-haskell - A Haskell Battlesnake starter

This repository contains a Haskell [Battlesnake](https://play.battlesnake.com) starter project.
It implements `v1` of the Battlesnake API and can be deployed to Heroku.

# Usage

This starter repo can be used in two different ways

1. As a fork that is subsequently modified to your needs
1. Installed as a hackage library in your haskell project

## As a fork

First clone this repo or create a fork by pushing the fork button and clone your
fork.

You can then start implementing your game logic in `app/Main.hs`.

This template uses [Stack](https://docs.haskellstack.org/en/stable/) to build
and run the project.

To start the server locally run `stack run` which will start a development
webserver on port 3000. (The port can be changed by setting the `PORT`
environment variable)

## As hackage dependency

### With cabal

Add the dependency to `your-app.cabal`

```
executable myfirstapp
    main-is: Main.hs
    build-depends:
        ...
        starter-snake-haskell ^>=1.1.0
```

### With stack

Add the dependency as `extra-dep` in your `stack.yaml`

```
resolver: lts-20.26
packages:
  - .

extra-deps:
- starter-snake-haskell-1.1.0
```

### Implementation

You can now start implementing your battlesnake logic in your project. You can
use the [Main](app/Main.hs) from this repo as a starting point.

# Deploy to Heroku

When using the repo as a fork you can use the provided [`Procfile`](Procfile) to
deploy it to heroku. Otherwise you will need to provide your own.

Afterwards you can use the [Heroku
CLI](https://devcenter.heroku.com/articles/heroku-cli#install-the-heroku-cli) to
deploy your project.

First, login to your account:

```
heroku login -i
```

Afterwards you can create a new deployment in heroku using the [heroku-buildpack-stack](https://github.com/mfine/heroku-buildpack-stack).

```
heroku create your-battlesnake-name --buildpack https://github.com/mfine/heroku-buildpack-stack
```

You can then push your code to heroku with git where it will be build and deployed:

```
git push heroku master
```