aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2018-11-28 11:25:06 +0100
committerGuido Günther <agx@sigxcpu.org>2018-11-28 11:25:06 +0100
commitdbd2238340d977fa1dc1727522df3195e828051c (patch)
tree663529743e260b4ce04cc469bcab3a29409ab6e0
parentd13762ed1c05853b1e49a1b0bdbe51773d7c5a89 (diff)
parent844b2a5c6184850a56c16e160e900316bf78728d (diff)
Merge tag 'v0.0.3' into debian/sid
ldapsp v0.0.3
-rw-r--r--priv/ldapsp.service2
-rw-r--r--rebar.config2
-rw-r--r--src/ldapsp.app.src2
-rw-r--r--src/ldapsp_config.erl3
-rw-r--r--src/ldapsp_version.erl52
-rwxr-xr-xtests/test.sh3
6 files changed, 60 insertions, 4 deletions
diff --git a/priv/ldapsp.service b/priv/ldapsp.service
index 241d1bd..3675de9 100644
--- a/priv/ldapsp.service
+++ b/priv/ldapsp.service
@@ -1,6 +1,6 @@
[Unit]
Description=Foreman LDAP SmartProxy
-After=syslog.target network.target
+After=network.target
[Service]
Type=simple
diff --git a/rebar.config b/rebar.config
index dd10d2c..2afb8f0 100644
--- a/rebar.config
+++ b/rebar.config
@@ -3,7 +3,7 @@
{webmachine, {git, "https://github.com/webmachine/webmachine", {branch, "master"}}}
]}.
-{relx, [{release, {'ldapsp', "0.0.1"},
+{relx, [{release, {'ldapsp', "0.0.3"},
[ldapsp,
eldap,
sasl]},
diff --git a/src/ldapsp.app.src b/src/ldapsp.app.src
index a25328b..e1a6767 100644
--- a/src/ldapsp.app.src
+++ b/src/ldapsp.app.src
@@ -2,7 +2,7 @@
{application, ldapsp,
[
{description, "ldapsp"},
- {vsn, "1"},
+ {vsn, "0.0.3"},
{modules, []},
{registered, []},
{applications, [
diff --git a/src/ldapsp_config.erl b/src/ldapsp_config.erl
index 938f7cd..9190ab5 100644
--- a/src/ldapsp_config.erl
+++ b/src/ldapsp_config.erl
@@ -30,7 +30,8 @@
dispatch() ->
Resources = [ldapsp_features,
ldapsp_realm,
- ldapsp_realm_hostname
+ ldapsp_realm_hostname,
+ ldapsp_version
],
lists:flatten([Module:routes() || Module <- Resources]).
diff --git a/src/ldapsp_version.erl b/src/ldapsp_version.erl
new file mode 100644
index 0000000..0d1e749
--- /dev/null
+++ b/src/ldapsp_version.erl
@@ -0,0 +1,52 @@
+%%-------------------------------------------------------------------
+%% This file is part of ldapsp.
+%%
+%% Copyright (C) 2016 Guido Günther <agx@sigxcpu.org>
+%%
+%% ldapsp is free software: you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation, either version 3 of the License, or
+%% (at your option) any later version.
+%%
+%% ldapsp is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with ldapsp. If not, see <http://www.gnu.org/licenses/>.
+%%-------------------------------------------------------------------
+-module(ldapsp_version).
+-export([
+ init/1,
+ routes/0,
+ to_html/2,
+ to_json/2,
+ content_types_provided/2
+]).
+
+-include_lib("webmachine/include/webmachine.hrl").
+
+-spec init(list()) -> {ok, term()}.
+init([]) ->
+ {ok, undefined}.
+
+%% @doc Return the routes this module should respond to.
+routes() ->
+ [{["version"], ?MODULE, []}].
+
+-spec to_json(wrq:reqdata(), term()) -> {iodata(), wrq:reqdata(), term()}.
+to_json(ReqData, State) ->
+ [Ver | _] = [ V || {App, _, V} <- application:which_applications(), App == ldapsp],
+ Version = list_to_binary(Ver),
+ Resp = mochijson2:encode([{"version", Version},
+ {"modules", [{"realm", Version}]}]),
+ {Resp, ReqData, State}.
+
+to_html(ReqData, State) ->
+ to_json(ReqData, State).
+
+content_types_provided(RD, Ctx) ->
+ {[{"application/json", to_json},
+ {"text/html", to_html}],
+ RD, Ctx}.
diff --git a/tests/test.sh b/tests/test.sh
index 50739f5..56de8ee 100755
--- a/tests/test.sh
+++ b/tests/test.sh
@@ -4,6 +4,9 @@ set -e
HOST=${HOST:-localhost}
# Check features
+curl -s -H "Content-Type: application/json" http://$HOST:8080/version
+
+# Check features
curl -s -H "Content-Type: application/json" http://$HOST:8080/features \
| grep -qs '["realm"]'