assert (len = 1 || len = 2);
if len = 1 then (s,s) else (List.nth parts 0, List.nth parts 1))
l
+
+let destructor_RE = Str.regexp "table_destructor\\(\\|\\.opt\\)$"
+
+let am_i_destructor () =
+ try
+ let _ = Str.search_forward destructor_RE Sys.argv.(0) 0 in true
+ with Not_found -> false
let main () =
let len = Array.length Sys.argv in
end
else
begin
+ let tab,idx =
+ if am_i_destructor () then
+ (SqlStatements.drop_tables,SqlStatements.drop_indexes)
+ else
+ (SqlStatements.create_tables,SqlStatements.create_indexes)
+ in
let from, index = if Sys.argv.(1) = "-index" then 2,true else 1,false in
let todo = Array.to_list (Array.sub Sys.argv from (len - from)) in
let todo = parse_args todo in
let todo = List.map (fun (x,name) -> name, (List.assoc x map)) todo in
- print_endline (String.concat "\n" (SqlStatements.create_tables todo));
+ print_endline (String.concat "\n" (tab todo));
if index then
- print_endline (String.concat "\n" (SqlStatements.create_indexes todo))
+ print_endline (String.concat "\n" (idx todo))
end
let _ = main ()