Browse Source

use rebar to build

Ery Lee 12 years ago
parent
commit
d15fc682f6
11 changed files with 57 additions and 69 deletions
  1. 1 0
      .gitignore
  2. 6 42
      Makefile
  3. 0 0
      ebin/.placeholder
  4. 22 9
      etc/epgsql.config
  5. 0 0
      log/.placeholder
  6. 13 3
      src/epgsql.app.src
  7. 1 1
      src/epgsql.erl
  8. 1 1
      src/epgsql_app.erl
  9. 6 6
      src/epgsql_pool.erl
  10. 5 5
      src/epgsql_pool_sup.erl
  11. 2 2
      src/epgsql_sup.erl

+ 1 - 0
.gitignore

@@ -2,3 +2,4 @@
 *.boot
 *.script
 ebin/*.app
+log/*.log

+ 6 - 42
Makefile

@@ -1,49 +1,13 @@
 NAME		:= epgsql
 VERSION		:= $(shell git describe --always --tags)
 
-ERL  		:= erl
-ERLC 		:= erlc
+all: compile ebin/$(NAME).app
 
-# ------------------------------------------------------------------------
+compile:
+	rebar compile
 
-ERLC_FLAGS	:= -Wall -I include +debug_info
-
-SRC			:= $(wildcard src/*.erl)
-TESTS 		:= $(wildcard test_src/*.erl)
-RELEASE		:= $(NAME)-$(VERSION).tar.gz
-
-APPDIR		:= $(NAME)-$(VERSION)
-BEAMS		:= $(SRC:src/%.erl=ebin/%.beam) 
-
-compile: $(BEAMS) ebin/$(NAME).app
-
-app: compile
-	@mkdir -p $(APPDIR)/ebin
-	@cp -r ebin/* $(APPDIR)/ebin/
-	@cp -r include $(APPDIR)
-
-release: app
-	@tar czvf $(RELEASE) $(APPDIR)
-
-clean:
-	@rm -f ebin/*.beam
-	@rm -f ebin/$(NAME).app
-	@rm -rf $(NAME)-$(VERSION) $(NAME)-*.tar.gz
-
-test: $(TESTS:test_src/%.erl=test_ebin/%.beam) compile
-	@dialyzer -n --src -c src
-	$(ERL) -pa ebin/ -pa test_ebin/ -noshell -s pgsql_tests run_tests -s init stop
-
-# ------------------------------------------------------------------------
-
-.SUFFIXES: .erl .beam
-.PHONY:    app compile clean test
-
-ebin/%.beam : src/%.erl
-	$(ERLC) $(ERLC_FLAGS) -o $(dir $@) $<
-
-ebin/%.app : src/%.app.src Makefile
+ebin/%.qpp: src/%.app.src
 	sed -e s/git/\"$(VERSION)\"/g $< > $@
 
-test_ebin/%.beam : test_src/%.erl
-	$(ERLC) $(ERLC_FLAGS) -o $(dir $@) $<
+clean:
+	rebar clean

+ 0 - 0
ebin/.placeholder


+ 22 - 9
etc/epgsql.config

@@ -5,16 +5,29 @@
 	 {start_pg2, true}
  ]},
  {sasl, [
-	{sasl_error_logger, {file, "log/mit_sasl.log"}}
+	{sasl_error_logger, {file, "log/sasl.log"}}
  ]},
- {epgsql, [{main, [{pool_size, 2},
-                   {host, "localhost"},
-                   {username, "ipon"},
-                   {password, "public"},
-                   {database, "ipon"},
-                   {port, 5432},
-                   {timeout, 6000}
-          ]}
+ {epgsql, [
+    {pools, [
+        {db1, [
+            {pool_size, 2},
+            {host, "localhost"},
+            {username, "ipon"},
+            {password, "public"},
+            {database, "ipon"},
+            {port, 5432},
+            {timeout, 6000}
+        ]},
+        {db2, [
+            {pool_size, 2},
+            {host, "localhost"},
+            {username, "ipon"},
+            {password, "public"},
+            {database, "ipon"},
+            {port, 5432},
+            {timeout, 6000}
+        ]}
+    ]}
  ]}
 ].
 

+ 0 - 0
log/.placeholder


+ 13 - 3
src/epgsql.app.src

@@ -1,9 +1,19 @@
 {application, epgsql,
  [{description, "PostgreSQL Client"},
   {vsn, git},
-  {modules, [pgsql, pgsql_binary, pgsql_connection, pgsql_fdatetime,
-             pgsql_idatetime, pgsql_sock, pgsql_types]},
+  {modules, [epgsql,
+             epgsql_app,
+             epgsql_sup,
+             epgsql_pool,
+             epgsql_pool_sup,
+             pgsql,
+             pgsql_binary,
+             pgsql_conn,
+             pgsql_fdatetime,
+             pgsql_idatetime,
+             pgsql_sock,
+             pgsql_types]},
   {registered, []},
   {applications, [kernel, stdlib, crypto, ssl]},
   {included_applications, []},
-  {mod, {epqsql_app, []}}]}.
+  {mod, {epgsql_app, []}}]}.

+ 1 - 1
src/epgsql.erl

@@ -29,7 +29,7 @@ connect(Pool, Opts) ->
     Port = proplists:get_value(port, Opts, 5432),
     pgsql_conn:connect(C, Host, Username, Password,
         [{database, DB}, {port, Port}, {timeout, Timeout}]),
-    epqsql_pool:add(Pool, C),
+    epgsql_pool:add_conn(Pool, C),
     {ok, C}.
 
 %========================

+ 1 - 1
src/epgsql_app.erl

@@ -7,7 +7,7 @@
 -export([start/2, stop/1]).
 
 start() ->
-    [application:start(A) || A <- [crypto, public_key, ssl, epgsql]].
+    [application:start(A) || A <- [sasl, crypto, public_key, ssl, epgsql]].
 
 start(normal, _) ->
     epgsql_sup:start_link().

+ 6 - 6
src/epgsql_pool.erl

@@ -4,7 +4,7 @@
 
 -export([start_link/1,
          id/1,
-         add/2,
+         add_conn/2,
          get_conn/1]).
 
 -export([init/1,
@@ -19,12 +19,12 @@
 
 -record(state, { queue }).
 
+id(Pool) when is_atom(Pool) ->
+    list_to_atom(lists:concat([epgsql_pool,":", Pool])).
+
 start_link(Pool) ->
     gen_server:start_link({local, id(Pool)}, ?MODULE, [], [{timeout, infinity}]).
 
-id(Pool) when is_atom(Pool) ->
-    list_to_atom(list:concat([epgsql_pool,":", Pool])).
-
 get_conn(Pool) ->
     case get(pgsql_conn) of
     undefined -> 
@@ -33,7 +33,7 @@ get_conn(Pool) ->
         Pid
     end.
 
-add(Pool, Pid) ->
+add_conn(Pool, Pid) ->
     gen_server:cast(id(Pool), {add, Pid}).
 
 %%----------------------------------------------------------------------------
@@ -46,7 +46,7 @@ handle_call(get_conn, _From, State = #state{queue = Q}) ->
     {empty, _} ->
         {reply, {error, empty_pool}, State};
     {{value, Pid}, Q1} ->
-        {reply, Pid, State#state{queue = queue:in_r(Pid, Q1)}}
+        {reply, Pid, State#state{queue = queue:in(Pid, Q1)}}
     end;
 
 handle_call(Msg, _From, State) ->

+ 5 - 5
src/epgsql_pool_sup.erl

@@ -15,11 +15,11 @@ start_link(Id, Pool, Opts) ->
 init([Pool, Opts]) ->
     PoolSize = proplists:get_value(pool_size, Opts, 2),
     {ok, {{one_for_one, 10, 10},
-            [{epgsql_pool:id(Pool), {epqsql_pool, start_link, []}, transient,
-                16#ffffffff, worker, [epqsql_pool]} |
-             [{connid(Pool, I), {epqsql, connect, [Pool, Opts]}, transient, 
-                16#ffffffff, worker, [pqsql_conn]} || I <- lists:seq(1, PoolSize)]]}}.
+            [{epgsql_pool:id(Pool), {epgsql_pool, start_link, [Pool]}, transient,
+                16#ffffffff, worker, [epgsql_pool]} |
+             [{connid(Pool, I), {epgsql, connect, [Pool, Opts]}, transient, 
+                16#ffffffff, worker, [pgsql_conn]} || I <- lists:seq(1, PoolSize)]]}}.
     
 connid(Pool, I) ->
-    list_to_atom(list:concat([pgsql_conn, ":", Pool, ":", integer_to_list(I)])). 
+    list_to_atom(lists:concat([pgsql_conn, ":", Pool, ":", integer_to_list(I)])). 
 

+ 2 - 2
src/epgsql_sup.erl

@@ -10,9 +10,9 @@ start_link() ->
     supervisor:start_link({local, ?MODULE}, ?MODULE, []).
 
 init([]) ->
-   {ok, Env} = application:get_env(epgsql), 
+   {ok, Pools} = application:get_env(pools), 
    {ok, { {one_for_one, 10, 10}, [
-            poolsup(Pool, Opts) || {Pool, Opts} <- Env]}}.
+            poolsup(Pool, Opts) || {Pool, Opts} <- Pools]}}.
 
 poolsup(Pool, Opts) ->
     PoolId = epgsql_pool_sup:id(Pool),