---
 server/sinan_web_api/src/swa_crary_handler.erl |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/server/sinan_web_api/src/swa_crary_handler.erl 
b/server/sinan_web_api/src/swa_crary_handler.erl
index e90c1a0..5536ddd 100644
--- a/server/sinan_web_api/src/swa_crary_handler.erl
+++ b/server/sinan_web_api/src/swa_crary_handler.erl
@@ -105,13 +105,31 @@ handle_do_request(["do_task", "release"], Req, BuildRef, 
Args) ->
 handle_do_request(["do_task", "dist"], Req, BuildRef, Args) ->
     swa_sup:start_handler(BuildRef, Req),
     sinan:dist(BuildRef, Args);
+handle_do_request(["do_task", "shutdown"], Req, _, _) ->
+    case application:get_env(sinan, may_shutdown) of
+       false ->
+           write_out(Req, "Not allowed to respond to shutdown requests!");
+       _ ->
+           write_out(Req, "Shutting down now!"),
+           init:stop()
+    end;
 handle_do_request(["do_task", Task], Req, _, _) ->
+    write_out(Req, "I don't know how to do " ++ Task).
+
+%%--------------------------------------------------------------------
+%% @doc
+%%  Write out an arbitrary message to the client
+%% @spec (Req, Message) -> ok
+%% @end
+%%--------------------------------------------------------------------
+write_out(Req, Message) ->
     Writer = crary_body:new_writer(Req),
     JDesc = {obj, [{type, run_event},
                   {event_type, stop},
-                  {desc, list_to_binary("I don't know how to do " ++ Task)}]},
+                  {desc, list_to_binary(Message)}]},
     Content = ktj_encode:encode(JDesc),
     crary:r(Writer, ok, [{"content-type", "application/json"},
-                         {<<"content-length">>, 
integer_to_list(iolist_size(Content))}]),
+                         {<<"content-length">>,
+                         integer_to_list(iolist_size(Content))}]),
     crary_sock:write(Writer, Content),
     crary_sock:done_writing(Writer).
-- 
1.6.1


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"erlware-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/erlware-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to