Browse Source

Crystal language installs and runs server
Conflicts:
toolset/setup/linux/languages/crystal.sh

Zane Kansil 10 years ago
parent
commit
74f432d5a2

+ 5 - 0
frameworks/Crystal/moonshine/README.md

@@ -0,0 +1,5 @@
+# Crystal-Moonshine
+
+This is the [Moonshine](https://github.com/dhruvrajvanshi/Moonshine) test of the Framework Benchmarks. Crystal is a new language that closely resembles Ruby with a goal of removing typed variables and parameters (instead inferencing), whilst maintaining top speed through bindings into C.
+
+Moonshine is a minimal web framework for the Crystal language.

+ 28 - 0
frameworks/Crystal/moonshine/benchmark_config.json

@@ -0,0 +1,28 @@
+{
+  "framework": "moonshine",
+  "tests": [{
+    "default": {
+      "setup_file": "setup",
+      "json_url": "/json",
+      "db_url": "/db",
+      "query_url": "/queries?queries=",
+      "fortune_url": "/fortunes",
+      "update_url": "/updates?queries=",
+      "plaintext_url": "/plaintext",
+      "port": 8080,
+      "approach": "Realistic",
+      "classification": "Fullstack",
+      "database": "MySQL",
+      "framework": "moonshine",
+      "language": "Crystal",
+      "orm": "",
+      "platform": "Crystal",
+      "webserver": "None",
+      "os": "Linux",
+      "database_os": "Linux",
+      "display_name": "Moonshine",
+      "notes": "",
+      "versus": "ruby"
+    }
+  }]
+}

+ 4 - 0
frameworks/Crystal/moonshine/install.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+
+fw_depends crystal
+

+ 8 - 0
frameworks/Crystal/moonshine/server.cr

@@ -0,0 +1,8 @@
+require "http/server"
+
+server = HTTP::Server.new(8080) do |request|
+  HTTP::Response.ok "text/plain", "Hello world! The time is #{Time.now}"
+end
+
+puts "Crystal-Moonshine listening port 8080"
+server.listen

+ 3 - 0
frameworks/Crystal/moonshine/setup.sh

@@ -0,0 +1,3 @@
+export CRYSTAL_HOME=${IROOT}/crystal-0.7.1-1
+
+${IROOT}/crystal server.cr

+ 9 - 7
toolset/setup/linux/languages/crystal.sh

@@ -1,14 +1,16 @@
 #!/bin/bash
-set -ex
-
-RETCODE=$(fw_exists ${IROOT}/crystal.installed)
+REDCODE=$(fw_exists ${IROOT}/crystal.installed)
 [ ! "$RETCODE" == 0 ] || { return 0; }
 
-sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 09617FD37CC06B54
-echo "deb http://dist.crystal-lang.org/apt crystal main" | sudo tee /etc/apt/sources.list.d/crystal.list
+SAVE_AS=crystal-0.7.1-1-linux-x86_64.tar.gz
+URL=https://github.com/manastech/crystal/releases/download/0.7.1/crystal-0.7.1-1-linux-x86_64.tar.gz
+
+# Default filename is too long an causes problems
+# Use -O to specify
+fw_get -O $SAVE_AS $URL
 
-sudo apt-get update
+fw_untar crystal-0.7.1-1-linux-x86_64.tar.gz
 
-sudo apt-get install -y crystal
+ln -s ${IROOT}/crystal-0.7.1-1/bin/crystal ${IROOT}/crystal
 
 touch ${IROOT}/crystal.installed