MyNixOS website logo
Description

Isreal Swan will make a snowman for you!

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

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

Metadata

Version

0.0.0.2

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows