@@ -30,7 +30,8 @@ init([]) ->
30
30
case proplists :get_value (httpd , Services ) of
31
31
undefined ->
32
32
build_config (HasMimetypes );
33
- _ -> ok
33
+ HttpdConfig ->
34
+ merge_config (HasMimetypes , HttpdConfig )
34
35
end
35
36
end ,
36
37
@@ -81,6 +82,34 @@ build_config(HasMimetypes) ->
81
82
application :set_env (inets , services , NewServices )
82
83
end .
83
84
85
+ merge_config (HasMimetypes , HttpdConfig ) ->
86
+ io :format (" Configuration for inets httpd exists, merging with simple_bridge.config...~n " ),
87
+ {Address , Port } = simple_bridge_util :get_address_and_port (inets ),
88
+ {DocRoot , StaticPaths } = simple_bridge_util :get_docroot_and_static_paths (inets ),
89
+ io :format (" Starting Inets Server at ~p :~p~n " , [Address , Port ]),
90
+ io :format (" Static Paths: ~p~n Document Root for Static: ~s~n " , [StaticPaths , DocRoot ]),
91
+
92
+ Modules = proplists :get_value (modules , HttpdConfig , []),
93
+
94
+ DefaultHttpd = [
95
+ {bind_address , simple_bridge_util :parse_ip (Address )},
96
+ {port , Port },
97
+ {server_name , " simple_bridge_inets" },
98
+ {server_root , " ." },
99
+ {document_root , DocRoot },
100
+ {modules , lists :append (Modules , [simple_bridge_util :get_anchor_module (inets )])},
101
+ {mime_types , build_mimetypes (HasMimetypes )}
102
+ ],
103
+
104
+ HttpdConfig0 = proplists :delete (modules , HttpdConfig ),
105
+
106
+ MergedHttpd = lists :umerge (lists :sort (HttpdConfig0 ), lists :sort (DefaultHttpd )),
107
+
108
+ {ok , Services } = application :get_env (inets , services ),
109
+
110
+ NewServices = lists :keyreplace (httpd , 1 , Services , {httpd , MergedHttpd }),
111
+ application :set_env (inets , services , NewServices ).
112
+
84
113
build_mimetypes (true = _HasMimetypes ) ->
85
114
[{binary_to_list (Ext ), binary_to_list (hd (mimetypes :ext_to_mimes (Ext )))}
86
115
|| Ext <- mimetypes :extensions ()];
0 commit comments