Changeset 95 for trunk/src/directory_tester.erl
- Timestamp:
- 04/11/10 19:19:02 (22 months ago)
- File:
-
- 1 edited
-
trunk/src/directory_tester.erl (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/directory_tester.erl
r93 r95 4 4 5 5 -module (directory_tester). 6 -export ([init/1, init/3]). 7 -export ([run_once/1, run_once/3]). 6 -export ([init/1, init/2, init/3]). 7 -export ([run_once/1, run_once/2, run_once/3]). 8 -export ([slave_node/1]). 9 -export ([read_args/1]). 8 10 9 run_once ( [Directory, Node | Include_directories]) when is_list (Node) ->10 Options = [{i, I} || I <- Include_directories],11 run_once (Director y, list_to_atom (Node), [{compiler, Options}]).11 run_once (Args) -> 12 {Directories, Options} = read_args (Args), 13 run_once (Directories, Options). 12 14 13 run_once (Directory, Node, Options) -> 14 run (start (Directory, Node, Options)). 15 run_once (Directories, All_options) -> 16 Slave_args = proplists: get_value (slave, All_options), 17 Options = proplists: delete (slave, All_options), 18 run_once (Directories, slave (Slave_args), Options). 15 19 16 init ([Directory, Node | Include_directories]) when is_list (Node) -> 17 Options = [{i, I} || I <- Include_directories], 18 init (Directory, list_to_atom (Node), [{compiler, Options}]). 20 run_once (Directories, Node, Options) -> 21 run (start (Directories, Node, Options)). 22 23 init (Args) -> 24 {Directories, Options} = read_args (Args), 25 init (Directories, Options). 26 27 init (Directories, All_options) -> 28 Slave_args = proplists: get_value (slave, All_options), 29 Options = proplists: delete (slave, All_options), 30 init (Directories, slave (Slave_args), Options). 19 31 20 init (Director y, Node, Options) ->21 loop (start (Director y, Node, Options)).32 init (Directories, Node, Options) -> 33 loop (start (Directories, Node, Options)). 22 34 23 start (Directory, Node, Options) -> 35 slave (undefined) -> 36 {Host, Name} = slave_node (node ()), 37 {ok, Slave} = slave: start_link (Host, Name), 38 Slave; 39 slave (Args) when is_list (Args) -> 40 {Host, Name} = slave_node (node ()), 41 {ok, Slave} = slave: start_link (Host, Name, Args), 42 Slave. 43 44 start (Directories, Node, Options) -> 24 45 Compiler_options = options (compiler, Options), 25 Compiler_args = [notify_me (compiler), Director y, Compiler_options],46 Compiler_args = [notify_me (compiler), Directories, Compiler_options], 26 47 Compiler = spawn_link (compiler, init, Compiler_args), 27 48 Tester = spawn_link (tester, init, [notify_me (tester), Node]), … … 29 50 Printer = spawn_link (text_printer, init, [standard_io]), 30 51 {Compiler, Tester, Printer}. 52 53 54 slave_node (nonode@nohost) -> 55 not_alive; 56 slave_node (Node) -> 57 Node_string = atom_to_list (Node), 58 [Name, Host_string] = string: tokens (Node_string, "@"), 59 Slave_name_string = Name ++ "_extremeforge_slave", 60 Slave_name = list_to_atom (Slave_name_string), 61 Host = list_to_atom (Host_string), 62 {Host, Slave_name}. 63 64 read_args (Args) when length (Args) == 1 -> 65 [Dirs] = read_path_args (Args), 66 {Dirs, []}; 67 read_args (Args) when length (Args) == 2 -> 68 [Dirs, Incs] = read_path_args (Args), 69 Options = [{compiler, [{i, I} || I <- Incs]}], 70 {Dirs, Options}; 71 read_args ([Arg1, Arg2, Slave_args]) -> 72 {Dirs, C_options} = read_args ([Arg1, Arg2]), 73 {Dirs, [{slave, Slave_args} | C_options]}. 74 75 read_path_args (Paths) -> 76 Dirs = [string: tokens (P, ":") || P <- Paths], 77 Not_dir = [D || D <- lists: concat (Dirs), not filelib: is_dir (D)], 78 {not_dir, []} = {not_dir, Not_dir}, 79 Dirs. 31 80 32 81 notify_me (Atom) ->
Note: See TracChangeset
for help on using the changeset viewer.
