-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathserver.rb
31 lines (28 loc) · 794 Bytes
/
server.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env ruby
require 'rubygems'
require 'sinatra'
require 'haml'
require 'json'
set :bind, '0.0.0.0'
# Handle GET-request (Show the upload form)
get "/" do
haml :upload
end
# Handle POST-request (Receive and save the uploaded file)
post "/" do
unless (jobname = params[:name]) &&
(tempfile = params[:file][:tempfile]) &&
(filename = params[:file][:filename])
halt 422, JSON({
message: "Validation failed",
errors: "parameters missing. file and name parameters required."
})
end
time = Time.now.strftime("%Y%m%d%H%M%S")
dir = "/var/www/uploads/#{time}/#{jobname}"
filepath = dir + "/#{filename}"
FileUtils.mkdir_p(dir)
FileUtils.cp(tempfile.path, filepath)
output = `ruby jenkins-xml-to-jobdsl.rb #{filepath}`
"#{output}"
end