Skip to content

Commit

Permalink
make unixbridge configurable
Browse files Browse the repository at this point in the history
  • Loading branch information
proger committed Sep 3, 2013
1 parent 479ebbb commit 7949786
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 10 deletions.
6 changes: 6 additions & 0 deletions run/sys.config
@@ -1,4 +1,10 @@
[
{erldocker, [
{unixbridge_port, 32133},
{docker_http, <<"http://localhost:32133">>}
%{docker_http, <<"http://localhost:4243">>}
]},

{lager, [
{handlers, [{lager_console_backend, info}]},
{crash_log, undefined}
Expand Down
2 changes: 1 addition & 1 deletion src/erldocker_api.erl
@@ -1,7 +1,7 @@
-module(erldocker_api).
-export([get/1, get/2, post/1, post/2, delete/1, delete/2]).

-define(ADDR, <<"http://localhost:32133">>).
-define(ADDR, application:get_env(erldocker, docker_http, <<"http://localhost:4243">>)).
-define(OPTIONS, [{pool, erldocker_pool}]).

get(URL) -> call(get, URL).
Expand Down
10 changes: 7 additions & 3 deletions src/erldocker_sup.erl
@@ -1,4 +1,3 @@

-module(erldocker_sup).

-behaviour(supervisor).
Expand All @@ -10,7 +9,7 @@
-export([init/1]).

%% Helper macro for declaring children of supervisor
-define(CHILD(I, Type), {I, {I, start_link, []}, permanent, 5000, Type, [I]}).
-define(CHILD(I, Type, Args), {I, {I, start_link, Args}, permanent, 5000, Type, [I]}).

%% ===================================================================
%% API functions
Expand All @@ -24,5 +23,10 @@ start_link() ->
%% ===================================================================

init([]) ->
{ok, { {one_for_one, 5, 10}, [?CHILD(erldocker_unixbridge, worker)]} }.
Children = case application:get_env(erldocker, unixbridge_port) of
{ok, I} when is_integer(I) -> [?CHILD(erldocker_unixbridge, worker, [I])];
_ -> []
end,

{ok, { {one_for_one, 5, 10}, Children} }.

17 changes: 11 additions & 6 deletions src/erldocker_unixbridge.erl
Expand Up @@ -4,7 +4,7 @@

%% API Function Exports

-export([start_link/0]).
-export([start_link/1]).

%% gen_server Function Exports

Expand All @@ -17,18 +17,23 @@
%% API Function Definitions
%% ------------------------------------------------------------------

start_link() ->
gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
start_link(BindPort) when is_integer(BindPort)->
gen_server:start_link({local, ?SERVER}, ?MODULE, [BindPort], []).

%% ------------------------------------------------------------------
%% gen_server Function Definitions
%% ------------------------------------------------------------------

init([]) ->
Socat = os:find_executable("socat"),
init([BindPort]) ->
Socat = case os:find_executable("socat") of
false -> throw(socat_not_found);
S -> S
end,
Port = erlang:open_port({spawn_executable, erlsh:fdlink_executable()},
[stream, exit_status, % stderr_to_stdout
{args, [Socat, "tcp-listen:32133,reuseaddr,bind=127.0.0.1,fork", "unix-connect:/var/run/docker.sock"]}]),
{args, [Socat,
"tcp-listen:" ++ integer_to_list(BindPort) ++ ",reuseaddr,bind=127.0.0.1,fork",
"unix-connect:/var/run/docker.sock"]}]),

{ok, #state{port=Port}}.

Expand Down

0 comments on commit 7949786

Please sign in to comment.