Leo il y a 10 ans
Parent
commit
1b895b8c67
5 fichiers modifiés avec 88 ajouts et 4 suppressions
  1. 5 2
      Makefile
  2. 53 0
      file_com.ml
  3. 13 1
      oclaunch.ml
  4. 6 1
      settings.atd
  5. 11 0
      test.json

+ 5 - 2
Makefile

@@ -4,5 +4,8 @@ atdgen:
 	atdgen -t settings.atd
 	atdgen -j settings.atd
 
-code:
-	corebuild -pkg yojson,atdgen oclaunch.byte
+mli:
+	corebuild -pkg yojson,atdgen file_com.inferred.mli
+
+code: mli
+	corebuild -pkg yojson,atdgen oclaunch.byte

+ 53 - 0
file_com.ml

@@ -0,0 +1,53 @@
+(******************************************************************************)
+(* 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;;
+
+(* Read settings and programs to launch from rc file *)
+
+(* Get string from file *)
+let string_f_file file =
+	let tmp_buffer = In_channel.create file in
+	let content = In_channel.input_all tmp_buffer in
+	(* Now, close file and return value *)
+	In_channel.close tmp_buffer; content
+;;
+
+(* Function to call from oclaunch module *)
+let init ~rc:rc_file =
+	string_f_file rc_file
+	|> Settings_j.rc_file_of_string
+;;

+ 13 - 1
oclaunch.ml

@@ -34,4 +34,16 @@
 (*  termes.                                                                   *)
 (******************************************************************************)
 
-open Core.Std;;
+open Core.Std;;
+
+(* Some settins variales *)
+let rc_file = "test.json" (* TODO Dev value, change this *)
+
+(* Obtain data from rc file *)
+let rc_content = File_com.init ~rc:rc_file;;
+
+(* Execute some command and log it *)
+let execute cmd =
+	Core_extended.Shell.run_full cmd
+	|> print_endline
+;;

+ 6 - 1
settings.atd

@@ -32,4 +32,9 @@
 (*  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.                                                                   *)
-(******************************************************************************)
+(******************************************************************************)
+
+type rc_file = {
+    progs: string list;
+    settings : string list;
+}

+ 11 - 0
test.json

@@ -0,0 +1,11 @@
+{
+    "progs" : [
+        "First one",
+        "Second one",
+        "And so on"
+    ]
+
+    "settings" : [
+        "Todo"
+    ]
+}