aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md17
-rwxr-xr-xbin/mock_server.rb46
2 files changed, 63 insertions, 0 deletions
diff --git a/README.md b/README.md
index 1d42338..2e256cb 100644
--- a/README.md
+++ b/README.md
@@ -8,4 +8,21 @@ according to the meta information saved in the audio files. The audio files are
expected to be in 2 directories, the artist and album directories. These
directories are also renamed.
+## mock\_server.rb
+
+mock\_server.rb takes some JSON on its STDIN and starts a simple HTTP server that
+slowly (in chunks) answers all requests with the given input.
+
+For example:
+
+```sh
+echo '{"var": "stuff"}' | ./bin/mock_server.rb
+```
+
+and in another session:
+
+```
+curl localhost:8082
+```
+
## tea-cleaner
diff --git a/bin/mock_server.rb b/bin/mock_server.rb
new file mode 100755
index 0000000..09f6b91
--- /dev/null
+++ b/bin/mock_server.rb
@@ -0,0 +1,46 @@
+#!/usr/bin/env ruby
+# This Source Code Form is subject to the terms of the Mozilla Public License,
+# v. 2.0. If a copy of the MPL was not distributed with this file, You can
+# obtain one at https://mozilla.org/MPL/2.0/. -}
+
+# frozen_string_literal: true
+
+require 'socket'
+require 'json'
+
+TCP_PORT = 8082
+
+server = TCPServer.new TCP_PORT
+
+puts "Provide some JSON and press Ctrl-D oder pipe the input via STDIN."
+response = ''
+
+while input = gets do
+ response += input
+end
+
+puts "Starting the server on #{TCP_PORT}."
+
+loop do
+ client = server.accept
+
+ puts 'Connection accepted'
+ puts client.gets
+
+ begin
+ client.print("HTTP/1.1 200 OK\r\n")
+ client.print("Content-Type: application/json\r\n")
+ client.print("Content-Length: #{response.bytesize}\r\n")
+ client.print("Connection: close\r\n")
+ client.print("\r\n")
+
+ response.each_char do |chunk|
+ client.print chunk
+ sleep 0.1
+ end
+
+ # client.print(response)
+ end
+
+ client.close
+end