From 7c327c119533b126b65a31534bfdccded0afff75 Mon Sep 17 00:00:00 2001 From: Tuncer Ayaz Date: Sun, 18 Dec 2011 13:29:58 +0100 Subject: [PATCH] Fix rebar_core crash (reported-by: Jeremy Raymond) --- src/rebar_core.erl | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/rebar_core.erl b/src/rebar_core.erl index 44ad355..56b32f2 100644 --- a/src/rebar_core.erl +++ b/src/rebar_core.erl @@ -115,23 +115,30 @@ process_dir(Dir, ParentConfig, Command, DirSet) -> %% to process this dir. {ok, AvailModuleSets} = application:get_env(rebar, modules), ModuleSet = choose_module_set(AvailModuleSets, Dir), - {_DirModules, ModuleSetFile} = ModuleSet, + maybe_process_dir(ModuleSet, Config, CurrentCodePath, + Dir, Command, DirSet) + end. - case lists:reverse(ModuleSetFile) of - "ppa." ++ _ -> - %% .app file - maybe_process_dir0(ModuleSetFile, ModuleSet, Config, - CurrentCodePath, Dir, - Command, DirSet); - "crs.ppa." ++ _ -> - %% .app.src file - maybe_process_dir0(ModuleSetFile, ModuleSet, Config, - CurrentCodePath, Dir, - Command, DirSet); - _ -> - process_dir0(Dir, Command, DirSet, Config, - CurrentCodePath, ModuleSet) - end +maybe_process_dir({[], undefined}=ModuleSet, Config, CurrentCodePath, + Dir, Command, DirSet) -> + process_dir0(Dir, Command, DirSet, Config, CurrentCodePath, ModuleSet); +maybe_process_dir({_, ModuleSetFile}=ModuleSet, Config, CurrentCodePath, + Dir, Command, DirSet) -> + case lists:reverse(ModuleSetFile) of + "ppa." ++ _ -> + %% .app file + maybe_process_dir0(ModuleSetFile, ModuleSet, + Config, CurrentCodePath, Dir, + Command, DirSet); + "crs.ppa." ++ _ -> + %% .app.src file + maybe_process_dir0(ModuleSetFile, ModuleSet, + Config, CurrentCodePath, Dir, + Command, DirSet); + _ -> + %% not an app dir, no need to consider apps=/skip_apps= + process_dir0(Dir, Command, DirSet, Config, + CurrentCodePath, ModuleSet) end. maybe_process_dir0(AppFile, ModuleSet, Config, CurrentCodePath,