diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2010-11-12 15:49:14 +0000 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2010-11-12 15:49:14 +0000 |
commit | ae767beac5b2a5afd909e748bc414d41aa26e38a (patch) | |
tree | 5e25daba9e4c6a2a51d683a24a3483cb24da3dcf | |
parent | 7c6d98d78b224a9b489b86f91854f6a95b9fe056 (diff) | |
parent | 5b7457c08325814cea0c69434d52e040ca2409bc (diff) | |
download | rabbitmq-server-ae767beac5b2a5afd909e748bc414d41aa26e38a.tar.gz |
merge default into bug23498
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | generate_deps | 23 | ||||
-rw-r--r-- | src/rabbit_mnesia.erl | 22 | ||||
-rw-r--r-- | src/rabbit_upgrade.erl | 4 |
4 files changed, 26 insertions, 25 deletions
@@ -93,7 +93,7 @@ all: $(TARGETS) $(DEPS_FILE): $(SOURCES) $(INCLUDES) rm -f $@ - escript generate_deps $(INCLUDE_DIR) $(SOURCE_DIR) \$$\(EBIN_DIR\) $@ + echo $(subst : ,:,$(foreach FILE,$^,$(FILE):)) | escript generate_deps $@ $(EBIN_DIR) $(EBIN_DIR)/rabbit.app: $(EBIN_DIR)/rabbit_app.in $(BEAM_TARGETS) generate_app escript generate_app $(EBIN_DIR) $@ < $< diff --git a/generate_deps b/generate_deps index 29587b5a..ddfca816 100644 --- a/generate_deps +++ b/generate_deps @@ -2,18 +2,21 @@ %% -*- erlang -*- -mode(compile). -main([IncludeDir, ErlDir, EbinDir, TargetFile]) -> - ErlDirContents = filelib:wildcard("*.erl", ErlDir), - ErlFiles = [filename:join(ErlDir, FileName) || FileName <- ErlDirContents], +%% We expect the list of Erlang source and header files to arrive on +%% stdin, with the entries colon-separated. +main([TargetFile, EbinDir]) -> + ErlsAndHrls = [ string:strip(S,left) || + S <- string:tokens(io:get_line(""), ":\n")], + ErlFiles = [F || F <- ErlsAndHrls, lists:suffix(".erl", F)], Modules = sets:from_list( [list_to_atom(filename:basename(FileName, ".erl")) || - FileName <- ErlDirContents]), - Headers = sets:from_list( - [filename:join(IncludeDir, FileName) || - FileName <- filelib:wildcard("*.hrl", IncludeDir)]), + FileName <- ErlFiles]), + HrlFiles = [F || F <- ErlsAndHrls, lists:suffix(".hrl", F)], + IncludeDirs = lists:usort([filename:dirname(Path) || Path <- HrlFiles]), + Headers = sets:from_list(HrlFiles), Deps = lists:foldl( fun (Path, Deps1) -> - dict:store(Path, detect_deps(IncludeDir, EbinDir, + dict:store(Path, detect_deps(IncludeDirs, EbinDir, Modules, Headers, Path), Deps1) end, dict:new(), ErlFiles), @@ -33,8 +36,8 @@ main([IncludeDir, ErlDir, EbinDir, TargetFile]) -> ok = file:sync(Hdl), ok = file:close(Hdl). -detect_deps(IncludeDir, EbinDir, Modules, Headers, Path) -> - {ok, Forms} = epp:parse_file(Path, [IncludeDir], [{use_specs, true}]), +detect_deps(IncludeDirs, EbinDir, Modules, Headers, Path) -> + {ok, Forms} = epp:parse_file(Path, IncludeDirs, [{use_specs, true}]), lists:foldl( fun ({attribute, _LineNumber, Attribute, Behaviour}, Deps) when Attribute =:= behaviour orelse Attribute =:= behavior -> diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index 331ad120..3b41237a 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -361,16 +361,15 @@ init_db(ClusterNodes, Force) -> case mnesia:change_config(extra_db_nodes, ProperClusterNodes) of {ok, Nodes} -> case Force of - false -> - FailedClusterNodes = ProperClusterNodes -- Nodes, - case FailedClusterNodes of - [] -> ok; - _ -> - throw({error, {failed_to_cluster_with, - FailedClusterNodes, - "Mnesia could not connect to some nodes."}}) - end; - _ -> ok + false -> FailedClusterNodes = ProperClusterNodes -- Nodes, + case FailedClusterNodes of + [] -> ok; + _ -> throw({error, {failed_to_cluster_with, + FailedClusterNodes, + "Mnesia could not connect " + "to some nodes."}}) + end; + true -> ok end, case {Nodes, mnesia:system_info(use_dir), mnesia:system_info(db_nodes)} of @@ -413,8 +412,7 @@ init_db(ClusterNodes, Force) -> %% one reason we may end up here is if we try to join %% nodes together that are currently running standalone or %% are members of a different cluster - throw({error, {unable_to_join_cluster, - ClusterNodes, Reason}}) + throw({error, {unable_to_join_cluster, ClusterNodes, Reason}}) end. schema_ok_or_move() -> diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl index ba06ade8..f4016d81 100644 --- a/src/rabbit_upgrade.erl +++ b/src/rabbit_upgrade.erl @@ -67,8 +67,8 @@ maybe_upgrade() -> read_version() -> case rabbit_misc:read_term_file(schema_filename()) of - {ok, [Heads]} -> {ok, Heads}; - {error, E} -> {error, E} + {ok, [Heads]} -> {ok, Heads}; + {error, _E} = Err -> Err end. write_version() -> |