aboutsummaryrefslogtreecommitdiff
path: root/picarones-elm
diff options
context:
space:
mode:
Diffstat (limited to 'picarones-elm')
-rw-r--r--picarones-elm/cover.html19
-rw-r--r--picarones-elm/default.nix24
-rw-r--r--picarones-elm/index.html21
-rw-r--r--picarones-elm/slide.html34
-rw-r--r--picarones-elm/src/Cover.elm2
5 files changed, 54 insertions, 46 deletions
diff --git a/picarones-elm/cover.html b/picarones-elm/cover.html
deleted file mode 100644
index d92eba9..0000000
--- a/picarones-elm/cover.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <meta charset="UTF-8">
- <title>Main</title>
- <script src="Cover.js"></script>
- <link rel="stylesheet" type="text/css" href="document.css" />
-</head>
-
-<body>
- <div id="elm"></div>
- <script>
- var app = Elm.Cover.init({
- node: document.getElementById('elm'),
- flags: "https://picarones.stuebinm.eu"
- });
- </script>
-</body>
-</html>
diff --git a/picarones-elm/default.nix b/picarones-elm/default.nix
index ed71959..b5e9d9d 100644
--- a/picarones-elm/default.nix
+++ b/picarones-elm/default.nix
@@ -1,9 +1,10 @@
-{ nixpkgs ? <nixpkgs>
-, config ? {}
+{ stdenv
+, elmPackages
+, lib
+, baseurl ? "example.org"
+, serverurl ? "wss://example.org"
}:
-with (import nixpkgs config);
-
let
mkDerivation =
{ srcs ? ./elm-srcs.nix
@@ -13,13 +14,15 @@ let
, targets ? []
, registryDat ? ./registry.dat
, outputJavaScript ? true
+ , patchPhase ? ""
+ , ...
}:
stdenv.mkDerivation {
- inherit name src;
+ inherit name src patchPhase;
buildInputs = [ elmPackages.elm ];
- buildPhase = pkgs.elmPackages.fetchElmDeps {
+ buildPhase = elmPackages.fetchElmDeps {
elmPackages = import srcs;
elmVersion = "0.19.1";
inherit registryDat;
@@ -32,7 +35,7 @@ let
mkdir -p $out/share/doc
${lib.concatStrings (map (module: ''
echo "compiling ${elmfile module}"
- elm make ${elmfile module} --output $out/${module}.${extension}
+ elm make ${elmfile module} --optimize --output $out/${module}.${extension}
'') targets)}
cp *.html $out
cp *.css $out
@@ -41,7 +44,12 @@ let
};
in mkDerivation {
name = "picarones";
-
+
+ patchPhase = ''
+ substituteInPlace index.html --replace "{{ baseurl }}" ${lib.escapeShellArg baseurl}
+ substituteInPlace slide.html --replace "{{ serverurl }}" ${lib.escapeShellArg serverurl}
+ '';
+
srcs = ./elm-srcs.nix;
src = ./.;
targets = ["Main" "Cover"];
diff --git a/picarones-elm/index.html b/picarones-elm/index.html
index 4fe72c7..156eb9c 100644
--- a/picarones-elm/index.html
+++ b/picarones-elm/index.html
@@ -3,32 +3,17 @@
<head>
<meta charset="UTF-8">
<title>Main</title>
- <script src="Main.js"></script>
+ <script src="Cover.js"></script>
<link rel="stylesheet" type="text/css" href="document.css" />
</head>
<body>
<div id="elm"></div>
<script>
- let args = location.hash.split("#").slice(1);
-
- var app = Elm.Main.init({
+ var app = Elm.Cover.init({
node: document.getElementById('elm'),
- flags: [args[0], parseInt(args[1])]
+ flags: "{{ baseurl }}"
});
-
- let ws = new WebSocket("ws://localhost:9160")
-
- ws.onopen = () => ws.send ("{\"room\":\"testroom\"}");
-
- ws.onmessage = function(msg) {
- console.log(msg.data)
- app.ports.recvPort.send(msg.data)
- }
-
- app.ports.sendPort.subscribe(function(msg) {
- ws.send(msg)
- })
</script>
</body>
</html>
diff --git a/picarones-elm/slide.html b/picarones-elm/slide.html
new file mode 100644
index 0000000..a72fb3c
--- /dev/null
+++ b/picarones-elm/slide.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>Main</title>
+ <script src="Main.js"></script>
+ <link rel="stylesheet" type="text/css" href="document.css" />
+</head>
+
+<body>
+ <div id="elm"></div>
+ <script>
+ let args = location.hash.split("#").slice(1);
+
+ var app = Elm.Main.init({
+ node: document.getElementById('elm'),
+ flags: [args[0], parseInt(args[1])]
+ });
+
+ let ws = new WebSocket("{{ serverurl }}")
+
+ ws.onopen = () => ws.send (JSON.stringify ({room:args[0]}));
+
+ ws.onmessage = function(msg) {
+ console.log(msg.data)
+ app.ports.recvPort.send(msg.data)
+ }
+
+ app.ports.sendPort.subscribe(function(msg) {
+ ws.send(msg)
+ })
+ </script>
+</body>
+</html>
diff --git a/picarones-elm/src/Cover.elm b/picarones-elm/src/Cover.elm
index 5c9d040..fee40c0 100644
--- a/picarones-elm/src/Cover.elm
+++ b/picarones-elm/src/Cover.elm
@@ -56,7 +56,7 @@ mkNumberInput i =
mkLink : Model -> Html Msg
mkLink (p, max, baseurl) = case p of
"" -> text "(none yet)"
- prefix -> let link = baseurl ++ "/slide#" ++ prefix ++ "#" ++ (String.fromInt max)
+ prefix -> let link = baseurl ++ "/slide.html#" ++ prefix ++ "#" ++ (String.fromInt max)
in a [ href link ] [ text link ]