Web and CLI interface to roll dice.
yarn dev
and point browser tolocalhost:3449
for figwheel and watching the Rust backend. If you don't issue:cljs/quit
at the REPL or you'll have to kill figwheel some other way.yarn prod
and point browser tolocalhost:8080
for the production build.yarn demo
for a dev server with no hot-reloading - point your browser tolocalhost:8080
.
For EMACS/CIDER, run yarn emacs
and then from Emacs invoke M-x cider-jack-in-clojurescript
. You'll need to invoke (start-figwheel!)
. Further instructions can be found here.
The backend component also has two other CLI modes:
- Invoke with
repl
as the first arg for a REPL which will evaluate commands in sequence separated by spaces and prompt for further input until a SIGINT. - Invoke with your command as space-separated arguments to run a single operation.
You can run the webserver directly via roll
(cargo run
) or roll serve
(cargo run -- serve
).
Command formats:
- A list of valid rolls in XdX format, separated by spaces -
1d2 2d4 3d8
- A list of string identifier to lookup in the item table -
blello
,blello, ian
- A multiplier followed by either a list of valid rolls or a string identifier -
3 1d7
,3 1d8 2d9
,3 blello
,3 blello ian
The multiplier is a little buggy on the web side - it only rolls out the first trailing arg. Stay tuned.
Web server endpoints:
GET /roll/:cmd
where:cmd
is any of the above, but separated by slashes instead of spaces:/roll/1d6
,/roll/2d8/3d9
,/roll/3/10d20
,/roll/9/blello/ian
GET /items
returns all the items stored indb.sqlite
POST /item
with anapplication/json
request body like'{"name": "blaster","damage": "1d8"}'
to insert that item into the DB
- Stable rust 1.25.0+
- Java JRE 1.8+
- yarn
- lein
- cargo-watch