Parcourir la source

Add a clean up command, to clean rc file

 + Implementation is in a separate file, to help it growing, and for
 consistency.
 + It's working, tested on the dev.json file, where the doubled entry "ydump
 dev.json" was removed.
Leo il y a 9 ans
Parent
commit
fd183b2688
3 fichiers modifiés avec 59 ajouts et 4 suppressions
  1. 2 2
      dev.json
  2. 41 0
      src/clean.ml
  3. 16 2
      src/command_def.ml

+ 2 - 2
dev.json

@@ -1,7 +1,7 @@
 {
   "progs": [
     "ydump dev.json", "task", "task +next", "task +rdv", "echo \"Finish\"",
-    "bdump -w daemon,rc,commands /tmp/v033", "ydump dev.json"
+    "bdump -w daemon,rc,commands /tmp/v033"
   ],
   "settings": []
-}
+}

+ 41 - 0
src/clean.ml

@@ -0,0 +1,41 @@
+(******************************************************************************)
+(* Copyright © Joly Clément, 2014-2015                                        *)
+(*                                                                            *)
+(*  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;;
+
+let run ~rc () =
+  File_com.write rc
+;;

+ 16 - 2
src/command_def.ml

@@ -143,6 +143,20 @@ let list =
       List_rc.run ~rc ())
 ;;
 
+(* To clean-up rc file *)
+let clean =
+  basic
+    ~summary:"Remove doubled entries, trailing spaces in them... \
+    Useful after manual editing or with rc file from old version."
+    Spec.(
+      empty
+      +> shared_params
+    )
+    (fun { rc } () ->
+      Clean.run ~rc ()
+    )
+;;
+
 (* To add a command to rc file, from stdin or directly *)
 let add =
   basic
@@ -265,8 +279,8 @@ let run ~version ~build_info () =
       further help, see http://oclaunch.eu.org.")
       ~preserve_subcommand_order:()
       [ ("run", default) ; ("licence", licence) ; ("add", add) ; ("edit", edit)
-      ; ("list", list) ; ("delete", delete) ; ("state", state)
-      ; ( "reset", reset) ; ( "reset-all", reset_all) ]
+      ; ("list", list) ; ("cleanup", clean) ; ("delete", delete)
+      ; ("state", state) ; ( "reset", reset) ; ( "reset-all", reset_all) ]
     |> run ~version ~build_info
   in