Browse Source

First command line interface

 - Add module for default behavior
 - TODO Make arguments more useful
Leo 10 years ago
parent
commit
ab89c9daf8
2 changed files with 66 additions and 10 deletions
  1. 58 0
      src/default.ml
  2. 8 10
      src/oclaunch.ml

+ 58 - 0
src/default.ml

@@ -0,0 +1,58 @@
+(******************************************************************************)
+(* Copyright © Joly Clément, 2014                                             *)
+(*                                                                            *)
+(*  leowzukw@vmail.me                                                         *)
+(*                                                                            *)
+(*  Ce logiciel est un programme informatique servant à exécuter              *)
+(*  automatiquement des programmes à l'ouverture du terminal.                 *)
+(*                                                                            *)
+(*  Ce logiciel est régi par la licence CeCILL soumise au droit français et   *)
+(*  respectant les principes de diffusion des logiciels libres. Vous pouvez   *)
+(*  utiliser, modifier et/ou redistribuer ce programme sous les conditions    *)
+(*  de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA    *)
+(*  sur le site "http://www.cecill.info".                                     *)
+(*                                                                            *)
+(*  En contrepartie de l'accessibilité au code source et des droits de copie, *)
+(*  de modification et de redistribution accordés par cette licence, il n'est *)
+(*  offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons, *)
+(*  seule une responsabilité restreinte pèse sur l'auteur du programme,  le   *)
+(*  titulaire des droits patrimoniaux et les concédants successifs.           *)
+(*                                                                            *)
+(*  A cet égard  l'attention de l'utilisateur est attirée sur les risques     *)
+(*  associés au chargement,  à l'utilisation,  à la modification et/ou au     *)
+(*  développement et à la reproduction du logiciel par l'utilisateur étant    *)
+(*  donné sa spécificité de logiciel libre, qui peut le rendre complexe à     *)
+(*  manipuler et qui le réserve donc à des développeurs et des professionnels *)
+(*  avertis possédant  des  connaissances  informatiques approfondies.  Les   *)
+(*  utilisateurs sont donc invités à charger  et  tester  l'adéquation  du    *)
+(*  logiciel à leurs besoins dans des conditions permettant d'assurer la      *)
+(*  sécurité de leurs systèmes et ou de leurs données et, plus généralement,  *)
+(*  à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.        *)
+(*                                                                            *)
+(*  Le fait que vous puissiez accéder à cet en-tête signifie que vous avez    *)
+(*  pris connaissance de la licence CeCILL, et que vous en avez accepté les   *)
+(*  termes.                                                                   *)
+(******************************************************************************)
+
+open Core.Std;;
+
+(* The module containing the step runned when the program is
+ * used without argument *)
+
+let run () =
+
+  (* Obtain data from rc file *)
+  let rc_content = File_com.init_rc ~rc:Const.rc_file in
+
+  (* Obtain data from tmp file *)
+  let tmp_content = Tmp_file.init ~tmp:Const.tmp_file in
+
+  (*List.iter rc_content.progs ~f:print_endline*)
+  (* Execute each item (one by one)in config file *)
+  let open Settings_t in (* This prevent warning 40 for ~cmd_list:rc_content.progs *)
+  let cmd_to_exec = Exec_cmd.what_next ~cmd_list:rc_content.progs ~tmp:tmp_content in
+    Exec_cmd.execute ~tmp:tmp_content cmd_to_exec; (* TODO Use display option in rc file *)
+
+    (* Return nothing, because launched from oclaunch.ml *)
+    ()
+;;

+ 8 - 10
src/oclaunch.ml

@@ -36,14 +36,12 @@
 
 
 open Core.Std;;
 open Core.Std;;
 
 
-(* Obtain data from rc file *)
-let rc_content = File_com.init_rc ~rc:Const.rc_file;;
+let commands = (* Define commands *)
+  Command.basic
+    ~summary:"TODO"
+    Command.Spec.empty
+    Default.run
+;;
 
 
-(* Obtain data from tmp file *)
-let tmp_content = Tmp_file.init ~tmp:Const.tmp_file;;
-
-(*List.iter rc_content.progs ~f:print_endline*)
-(* Execute each item (one by one)in config file *)
-let open Settings_t in (* This prevent warning 40 for ~cmd_list:rc_content.progs *)
-let cmd_to_exec = Exec_cmd.what_next ~cmd_list:rc_content.progs ~tmp:tmp_content in
-  Exec_cmd.execute ~tmp:tmp_content cmd_to_exec;; (* TODO Use display option in rc file *)
+let () =
+  Command.run ~version:"0.1" ~build_info:"TEST" commands