aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/share/ruby/aserv.rb
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--share/ruby/aserv.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/share/ruby/aserv.rb b/share/ruby/aserv.rb
new file mode 100644
index 0000000..1ac3d60
--- /dev/null
+++ b/share/ruby/aserv.rb
@@ -0,0 +1,35 @@
1require "webrick"
2
3#
4# Dummy asset server
5#
6
7class AssetServlet < WEBrick::HTTPServlet::AbstractServlet
8 def do_GET(req, res)
9 uuid = req.path.split("/")[2].downcase.gsub(/[^0-9a-f]+/, "")
10 if uuid.length == 32
11 # length is correct
12 File.open("assets/#{uuid}/data") do |f|
13 res.body = f.read
14 end
15 end
16 # res["content-type"] = "text/plain" # or what do we set it to ?
17 end
18 def do_POST(req, res)
19 uuid = req.path.split("/")[2].downcase.gsub(/[^0-9a-f]+/, "")
20 if uuid.length == 32
21 Dir.mkdir("assets/#{uuid}")
22 File.open("assets/#{uuid}/data", "wb") do |f|
23 f.write req.body
24 STDERR.print "Written #{req.body.length} bytes for uuid #{uuid}\n\n"
25 end
26 end
27 end
28end
29
30
31svr = WEBrick::HTTPServer.new(:Port=>8003)
32svr.mount("/assets", AssetServlet, 5000000)
33trap(:INT){ svr.shutdown }
34svr.start
35