Parcourir la source

Reorganise architecture

Leo il y a 10 ans
Parent
commit
47252efec2
8 fichiers modifiés avec 179 ajouts et 115 suppressions
  1. 1 6
      Makefile
  2. 44 0
      const.ml
  3. 47 0
      exec_cmd.ml
  4. 6 26
      file_com.ml
  5. 4 36
      oclaunch.ml
  6. 0 0
      rc_test.json
  7. 77 0
      tmp_file.ml
  8. 0 47
      tmp_log.atd

+ 1 - 6
Makefile

@@ -1,13 +1,8 @@
-all: atdgen-set atdgen-tmp code
+all: atdgen-tmp code
 
 
-atdgen-set:
-	atdgen -t tmp_log.atd
-	atdgen -j tmp_log.atd
-	
 atdgen-tmp:
 atdgen-tmp:
 	atdgen -t settings.atd
 	atdgen -t settings.atd
 	atdgen -j settings.atd
 	atdgen -j settings.atd
 
 
-
 code:
 code:
 	corebuild -pkg yojson,atdgen oclaunch.byte
 	corebuild -pkg yojson,atdgen oclaunch.byte

+ 44 - 0
const.ml

@@ -0,0 +1,44 @@
+(******************************************************************************)
+(* 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.                                                                   *)
+(******************************************************************************)
+
+(* File to stock configuration variables *)
+
+open Core.Std;;
+
+(* Some settings variales *)
+let rc_file = "rc_test.json";; (* TODO Dev value, change this *)
+(* Set tmp file, in witch stock launches *)
+let tmp_file = "tmp_test.json";; (* TODO Dev value, change this *)

+ 47 - 0
exec_cmd.ml

@@ -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.                                                                   *)
+(******************************************************************************)
+
+open Core.Std;;
+
+(* Execute some command and log it *)
+let execute ?(display=false) cmd =
+    (*Tmp_file.log cmd*)
+    if display then
+        print_endline cmd;
+    Sys.command cmd
+    |> print_int;
+;;
+

+ 6 - 26
file_com.ml

@@ -40,34 +40,14 @@ open Core.Std;;
 
 
 (* Get string from file *)
 (* Get string from file *)
 let string_f_file 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 read the tmp file *)
-let init_tmp ~tmp:tmp_file =
-	string_f_file tmp_file
-	|> Tmp_log_j.tmp_trace_of_string
+    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 read the rc file *)
 (* Function to read the rc file *)
 let init_rc ~rc: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
+    string_f_file rc_file
+    |> Settings_j.rc_file_of_string
 ;;
 ;;

+ 4 - 36
oclaunch.ml

@@ -36,43 +36,11 @@
 
 
 open Core.Std;;
 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 *)
 (* Obtain data from 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 *)
-;;
+let rc_content = File_com.init_rc ~rc:Const.rc_file;;
 
 
-(* Execute some command and log it *)
-let execute ?(display=false) cmd =
-	if display then
-		print_endline cmd;
-	Sys.command cmd
-	|> print_int;
-	log cmd
-;;
+(* Obtain data from tmp file *)
+let tmp_content = Tmp_file.init ~tmp:Const.tmp_file;;
 
 
 (* Execute each item in config file *)
 (* Execute each item in config file *)
-List.map ~f:execute rc_content.progs;;
+List.map ~f:Exec_cmd.execute rc_content.progs;;

test.json → rc_test.json


+ 77 - 0
tmp_file.ml

@@ -0,0 +1,77 @@
+(******************************************************************************)
+(* 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;;
+
+(* Function to open tmp file *)
+let init ~tmp =
+  Yojson.Basic.from_file tmp;;
+
+(* 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
+;;
+
+(* Return true if a program is in the rc file *)
+let rec is_prog_in_rc liste_from_rc_file program = (* TODO restaure ?(liste_from_rc_file=rc_content.progs) *)
+    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 tl program
+;;
+
+(*
+(* Log when a program has been launched *)
+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 *)
+;;
+*)

+ 0 - 47
tmp_log.atd

@@ -1,47 +0,0 @@
-(******************************************************************************)
-(* 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
-    *)
-}