Shpadoinkle-isreal: Isreal Swan will make a snowman for you!

[ gpl, library, web ] [ Propose Tags ] [ Report a vulnerability ]

Snowman as a service. The web server calls a bash script. That builds inside a nix-shell. Results are returned via http.


[Skip to Readme]

Modules

  • Shpadoinkle
    • Isreal
      • Shpadoinkle.Isreal.Types

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.0.2
Dependencies aeson, base (>=4.12.0 && <4.16), bytestring, containers, deepseq, directory, filepath, process, random, servant, servant-server, text, time, warp [details]
License GPL-3.0-or-later
Author Isaac Shapira
Maintainer isaac.shapira@platonic.systems
Category Web
Source repo head: git clone https://gitlab.com/platonic/shpadoinkle.git
Uploaded by fresheyeball at 2021-06-02T18:13:18Z
Distributions
Executables isreal
Downloads 166 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2021-06-02 [all 2 reports]

Readme for Shpadoinkle-isreal-0.0.0.2

[back to package description]

Isreal Swan

Goldwater Haddock GPL-3 built with nix Hackage Hackage Deps Hackage CI

Snowman as a service

If you build me a snowman, then I'll build one for you.

This service is hosted at https://isreal.shpadoinkle.org. It allows you to post Shpadoinkle code and see the resulting UI in your browser. For example, let's say we have the local file Hello.hs, containing:

module Main where


import           Shpadoinkle
import           Shpadoinkle.Backend.ParDiff
import           Shpadoinkle.Html


view :: () -> Html m ()
view _ = "hello world"


main :: IO ()
main = runJSorWarp 8080 $ simple runParDiff () view getBody

You can send this to Isreal Swan with the following curl command:

curl -X POST -H "Content-Type:application/octet-stream" --data-binary @Hello.hs \
  https://isreal.shpadoinkle.org/compile/hello-token?nonce=0

You should increment the nonce for browser cache busting.

Notice hello-token in the URL. It's on you to make this a unique token for your work, as the system is open-ended (any arbitrary (uri encoded) string is fine). Reusing this token will result in incremental rebuilds, which are much faster. Also please note, these spaces are ephemeral and will be deleted.

The curl command will respond with Either an error message from the compiler or a message indicating success. If your code compiled successfully, you will be able to see the resulting UI here:

https://isreal.shpadoinkle.org/serve/hello-token/index.html

Deps & Such

Many common Haskell dependencies are provided. The environment is based on the cabal file located here.

Clean Up

Clean up your token:

curl -X DELETE http://localhost:8080/clean/hello-token

GPL License

Shpadoinkle Isreal (all files within this directory), are provided under the terms of the GNU General Public License v3.0