Browse Source

Various and don't work

Leo 10 years ago
parent
commit
e2bb142792
5 changed files with 132 additions and 34 deletions
  1. 7 5
      Makefile
  2. 45 25
      file_com.ml
  3. 26 4
      oclaunch.ml
  4. 47 0
      tmp_log.atd
  5. 7 0
      tmp_test.json

+ 7 - 5
Makefile

@@ -1,11 +1,13 @@
-all: atdgen code
+all: atdgen-set atdgen-tmp code
 
-atdgen:
+atdgen-set:
+	atdgen -t tmp_log.atd
+	atdgen -j tmp_log.atd
+	
+atdgen-tmp:
 	atdgen -t settings.atd
 	atdgen -j settings.atd
 
-mli:
-	corebuild -pkg yojson,atdgen file_com.inferred.mli
 
 code:
-	corebuild -pkg core_extended,yojson,atdgen oclaunch.byte
+	corebuild -pkg yojson,atdgen oclaunch.byte

+ 45 - 25
file_com.ml

@@ -1,36 +1,36 @@
 (******************************************************************************)
-(* Copyright © Joly Clément, 2014                                             *)
+(* 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 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   *)
+(*  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    *)
+(*  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.           *)
+(*  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é.        *)
+(*  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   *)
+(*  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.                                                                   *)
 (******************************************************************************)
 
@@ -46,8 +46,28 @@ let string_f_file file =
 	In_channel.close tmp_buffer; content
 ;;
 
-(* Function to call from oclaunch module *)
-let init ~rc:rc_file =
+(* Function to read the tmp file *)
+let init_tmp ~tmp:tmp_file =
+	string_f_file tmp_file
+	|> Tmp_log_j.tmp_trace_of_string
+;;
+
+(* Function to read the rc file *)
+let init_rc ~rc:rc_file =
 	string_f_file rc_file
 	|> Settings_j.rc_file_of_string
-;;
+;;
+
+(* Verify that the value exist *)
+let verify_key_exist ~key entry =
+	if entry = key then
+		true
+	else
+		false
+;;
+(* Stock a value a file in /tmp
+   ~target is the target file *)
+let stock_tmp ~key ~value ~target =
+  let num_value = List.find target ~f:(verify_key_exist ~key:key) in
+    num_value
+;;

+ 26 - 4
oclaunch.ml

@@ -38,18 +38,40 @@ open Core.Std;;
 
 (* Some settins variales *)
 let rc_file = "test.json" (* TODO Dev value, change this *)
+let tmp_file = "test_tmp.json" (* TODO Dev value, change this *)
 
 (* Obtain data from rc file *)
-let rc_content = File_com.init ~rc:rc_file;;
+let rc_content = File_com.init_rc ~rc:rc_file;;
+
+(* Set tmp file, in witch stock launches *)
+let tmp_content = File_com.init_tmp ~tmp:tmp_file;;
+
+(* Return true if a program is in the rc file *)
+let rec is_prog_in_rc ?(liste_from_rc_file=rc_content.progs) program =
+	match liste_from_rc_file with
+	(* | None -> is_prog_in_rc program ~liste_from_rc_file:rc_content.progs *)
+	| [] -> false
+	| hd :: tl -> if hd = program then true else is_prog_in_rc program  ~liste_from_rc_file:tl
+;;
+
+(* Log when a program has been launch *)
+let log program =
+	(* Verify the program exist in rc file *)
+	let prog_rc = is_prog_in_rc program in
+	match prog_rc with
+	| false -> (* failwith *) "Not in configuration file"
+	| true -> "Tmp value" (* TODO delete this *)
+	(* let open Tmp_log_t in
+	File_com.stock_tmp ~target:tmp_content.cmd ~key:program ~value:1 *)
+;;
 
 (* Execute some command and log it *)
 let execute ?(display=false) cmd =
 	if display then
 		print_endline cmd;
-	(* Core_extended.Shell.sh ~echo:display cmd (* Echo value allow to print the command *) *)
-	Sys.command cmd (* TODO Use Core lib instead of Pervasive *)
+	Sys.command cmd
 	|> print_int;
-	cmd
+	log cmd
 ;;
 
 (* Execute each item in config file *)

+ 47 - 0
tmp_log.atd

@@ -0,0 +1,47 @@
+(******************************************************************************)
+(* 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.                                                                   *)
+(******************************************************************************)
+
+type tmp_trace = {
+	cmd: launch_trace list
+}
+
+type launch_trace = {
+	key: string;
+    (*
+	?day: string;
+    ?date: string
+    *)
+}

+ 7 - 0
tmp_test.json

@@ -0,0 +1,7 @@
+{
+    "cmd": [
+        { "cmd1": 2 },
+        { "cmd2": 0.1 },
+        { "cmd3": 5 }
+    ]
+}