diff --git a/src/eMake.erl b/src/eMake.erl index 8b8c57d..3cbf492 100644 --- a/src/eMake.erl +++ b/src/eMake.erl @@ -17,22 +17,34 @@ main(Args) -> process_flag(trap_exit, true), - IsAll = lists:member("all", Args), - case lists:delete("all", Args) of - [] -> - make(max(1, erlang:system_info(schedulers) - 1), ?EMakefile, [], IsAll); - [EMakeFileOrWorkCnt] -> - try list_to_integer(EMakeFileOrWorkCnt) of - Cnt -> - make(max(1, Cnt), ?EMakefile, [], IsAll) - catch _:_ -> - make(max(1, erlang:system_info(schedulers) - 1), EMakeFileOrWorkCnt, [], IsAll) - end; - [EMakeFile, WorkCntStr] -> - make(max(1, list_to_integer(WorkCntStr)), EMakeFile, [], IsAll); - [EMakeFile, WorkCntStr, OptsStr] -> - {ok, Opts} = strToTerm(OptsStr), - make(max(1, list_to_integer(WorkCntStr)), EMakeFile, Opts, IsAll) + case Args of + ["fo"] -> + os:cmd("redis-cli FLUSHDB"), + ok; + ["fo", DBNumStr | _] -> + os:cmd("redis-cli -n " ++ DBNumStr ++ " FLUSHDB"), + ok; + ["fa" | _] -> + os:cmd("redis-cli FLUSHALL"), + ok; + _ -> + IsAll = lists:member("all", Args), + case lists:delete("all", Args) of + [] -> + make(max(1, erlang:system_info(schedulers) - 1), ?EMakefile, [], IsAll); + [EMakeFileOrWorkCnt] -> + try list_to_integer(EMakeFileOrWorkCnt) of + Cnt -> + make(max(1, Cnt), ?EMakefile, [], IsAll) + catch _:_ -> + make(max(1, erlang:system_info(schedulers) - 1), EMakeFileOrWorkCnt, [], IsAll) + end; + [EMakeFile, WorkCntStr] -> + make(max(1, list_to_integer(WorkCntStr)), EMakeFile, [], IsAll); + [EMakeFile, WorkCntStr, OptsStr] -> + {ok, Opts} = strToTerm(OptsStr), + make(max(1, list_to_integer(WorkCntStr)), EMakeFile, Opts, IsAll) + end end. eMakeFile() ->