From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 14C437EEBF for ; Mon, 3 Aug 2015 14:15:54 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of leowzukw@vmail.me) identity=pra; client-ip=62.210.82.129; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="leowzukw@vmail.me"; x-sender="leowzukw@vmail.me"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of leowzukw@vmail.me designates 62.210.82.129 as permitted sender) identity=mailfrom; client-ip=62.210.82.129; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="leowzukw@vmail.me"; x-sender="leowzukw@vmail.me"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: Fail (mail2-smtp-roc.national.inria.fr: domain of postmaster@mx1.vmail.me does not designate 62.210.82.129 as permitted sender) identity=helo; client-ip=62.210.82.129; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="leowzukw@vmail.me"; x-sender="postmaster@mx1.vmail.me"; x-conformance=sidf_compatible; x-record-type="v=spf1" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CXMgDrWr9VS4FS0j5bGYI0TQFKCQtYBoMjgS6kSgkBAYEZAZFmgigHhytMAQEBAQEBBwEBFgsKBRYMMEEFhAcEGQEBOBMLMA4CBEE1iCoEsxJwhGUBBZEcBoYejSmBQ4xSiCyCOYJCh1GBR5Bcg0GDZBGCIB+BVTwxDAEBgj4BAQE X-IPAS-Result: A0CXMgDrWr9VS4FS0j5bGYI0TQFKCQtYBoMjgS6kSgkBAYEZAZFmgigHhytMAQEBAQEBBwEBFgsKBRYMMEEFhAcEGQEBOBMLMA4CBEE1iCoEsxJwhGUBBZEcBoYejSmBQ4xSiCyCOYJCh1GBR5Bcg0GDZBGCIB+BVTwxDAEBgj4BAQE X-IronPort-AV: E=Sophos;i="5.15,601,1432591200"; d="ml'?scan'208,217";a="172513401" Received: from mx1.vmail.me ([62.210.82.129]) by mail2-smtp-roc.national.inria.fr with ESMTP; 03 Aug 2015 14:15:53 +0200 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=vmail.me; s=mx1; t=1438604310; bh=8+hackMuzCh1AedimrUtQQ2DGEZmrlX6KTtw19Xm/7k=; h=Date:From:To:Subject; b=Fc0Yo8+9+FeQO42xBPeT77ss14Z2n1dwxCMpIG7IWKBh6TgErMG0MCwhLLQBSZlML xNMT/TLlo26bf0MEzYTrmjjJLfuwnBJpH5M+O7m+ALYl73SL+0Sfn4XuZpMHo6y6Zf 44vlu3+sCJNri8wd42tikYy54VBw0nmFRd9e3JXaAZGOT/n75s9WW4DUIHP3N+iveE otmYPXiAlT9vWGX9Y9Rm+t0iAehRskLqWCYY6lqj0nUYebh38XUv3G8dEWh2SkQ7S2 /UTHMIUEkekTc3QwxwkTQYyUhPaEmaIfiAmIOda2cJS+4Wyntxx56K2UQbdd91TCiu Vnd3qyNBezDFA== Content-Type: multipart/mixed; boundary="=_96c967b4741fde974cfbdddf5b1b5417" Date: Mon, 03 Aug 2015 14:18:24 +0200 From: leowzukw@vmail.me To: caml-list@inria.fr Message-ID: X-Sender: leowzukw@vmail.me Subject: [Caml-list] Using common arguments with Command module of the Core library --=_96c967b4741fde974cfbdddf5b1b5417 Content-Type: multipart/alternative; boundary="=_cd4a593c1621f202c32efe9aaabc4e48" --=_cd4a593c1621f202c32efe9aaabc4e48 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Hello everybody, I'm trying to use subcommands with the Core library. I would like to factorize several things : * A set of common arguments (to set color, verbosity and so on) * A common way to deal with these arguments * A pretty way to define subcommands using these common arguments and way to handle it. Main problem is that I can't define more arguments to my subcommand. More details in my code, which is joined. You may also find it here (Github gist, could be updated): http://j.mp/1JHlZ6S [1] Result of the compilation (corebuild cmd.byte) + ocamlfind ocamlc -c -w A-4-33-40-41-42-43-34-44 -strict-sequence -g -bin-annot -short-paths -thread -syntax camlp4o -package bin_prot.syntax -package sexplib.syntax,comparelib.syntax,fieldslib.syntax,variantslib.syntax -package core -o cmd.cmo cmd.ml File "cmd.ml", line 98, characters 5-44: Warning 48: implicit elimination of optional argument ?extend File "cmd.ml", line 49, characters 11-341: Warning 27: unused variable summary. File "cmd.ml", line 49, characters 20-341: Warning 27: unused variable args. Finished, 3 targets (0 cached) in 00:00:03. Thanks for your help Leo Links: ------ [1] http://j.mp/1JHlZ6S --=_cd4a593c1621f202c32efe9aaabc4e48 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8

Hello everybo= dy,

I'm trying to use subcommands with the Core library. I would like t= o factorize several things :

  • A set of com= mon arguments (to set color, verbosity and so on)
  • A common way= to deal with these arguments
  • A pretty way= to define subcommands using these common arguments and way to handle it.

 

Main problem = is that I can't define more arguments to my subcommand. More details i= n my code, which is joined. You may also find it here (Github gist, could b= e updated): http://j.mp/1JHlZ6S<= /p>

 

Result of the= compilation (corebuild cmd.byte)


+ ocamlfind= ocamlc -c -w A-4-33-40-41-42-43-34-44 -strict-sequence -g -bin-annot -shor= t-paths -thread -syntax camlp4o -package bin_prot.syntax -package sexplib.s= yntax,comparelib.syntax,fieldslib.syntax,variantslib.syntax -package core -= o cmd.cmo cmd.ml
File "cmd.ml", line 98, characters 5-44:
Warning 48: implicit eliminatio= n of optional argument ?extend
File "cmd.ml", line 49, characters 11-341:Warning 27: unuse= d variable summary.
File "cmd.ml", line 49, characters 20-341:
Warning 27: unused variable = args.
Fi= nished, 3 targets (0 cached) in 00:00:03.


Thanks for your help
Leo

 
--=_cd4a593c1621f202c32efe9aaabc4e48-- --=_96c967b4741fde974cfbdddf5b1b5417 Content-Transfer-Encoding: base64 Content-Type: text/plain; name=cmd.ml Content-Disposition: attachment; filename=cmd.ml; size=2525 KCogQnVpbGQgd2l0aDoKICAqIGNvcmVidWlsZCBjbWQuYnl0ZSAqKQoKCm9w ZW4gQ29yZS5TdGQ7OwoKKCogV2l0aCB0aGlzIGNvZGUsIHdlIGFyZSB0cnlp bmcgdG8KICogRGVmaW5lIGEgY29tbW9uIHNldCBvZiBhcmd1bWVudHMgdG8g YmUgcGFzc2VkIHRvIGFsbCBzdWIgY29tbWFuZHMKICogSGFuZGxlIHRoZXNl IGNvbW1vbiBhcmd1bWVudHMgYWxsIHRoZSBzYW1lIHdheQogKiBEZWZpbmUg c3ViIGNvbW1hbmRzIGluIGEgY29tbW9uLCBsZXNzIHZlcmJvc2Ugd2F5ICop CgooKiBUaGUgcHJvZ3JhbSBjb21waWxlZCBjb3VsZCBiZSB1c2VkIHRoaXMg d2F5CiAqIGNtZC5ieXRlIHN1bSAzMiArIDEwICMgRGlzcGxheSA0MgogKiBj bWQuYnl0ZSBzZXR0aW5ncyAjIERpc3BsYXkgYWxsIHRoZSBzZXR0aW5ncwog KiBCdXQgd2UgY291bGQgdXNlIGNvbW1vbiBhcmd1bWVudHMgOgogKiBjbWQu Ynl0ZSBzdW0gLWMgMzIgKyAxMCAjIERpc3BsYXkgNDIgYW5kIGEgbWVzc2Fn ZSBhYm91dCBjb2xvcgogKiBjbWQuYnl0ZSBzZXR0aW5ncyAjIERpc3BsYXkg YWxsIHRoZSBzZXR0aW5ncwogKiAqKQoKKCogUHJvYmxlbXM6CiAgKiBBcmd1 bWVudHMgZnJvbSBvdGhlciBjb21tYW5kcyBhcmUgbm90IHBhc3NlZCB0byB0 aGUgZnVuY3Rpb25zCiAgKiBTZXZlcmFsIFhYWCBiZWxvdyAqKQoKKCogVmVy Ym9zaXR5ICopCmxldCB2ZXJiID0gcmVmIDA7OwpsZXQgY29sb3IgPSByZWYg ZmFsc2U7OwoKKCogQSBzZXQgb2YgY29tbW9uIGZsYWdzICopCmxldCBjb21t b24gPQogIGxldCBvcGVuIENvbW1hbmQuU3BlYyBpbgogIGVtcHR5CiAgKz4g ZmxhZyAiLXYiIChvcHRpb25hbF93aXRoX2RlZmF1bHQgMCBpbnQpCiAgICB+ ZG9jOiJuIFNldCB2ZXJib3NpdHkiCiAgKz4gZmxhZyAiLWMiIChvcHRpb25h bF93aXRoX2RlZmF1bHQgZmFsc2UgYm9vbCkKICAgIH5kb2M6ImJvb2wgU2V0 IGNvbG9yIgogICs+IGZsYWcgIi0tcmMiIChvcHRpb25hbF93aXRoX2RlZmF1 bHQgIiIgc3RyaW5nKQogICAgfmRvYzoibmFtZSBTZXQgY29uZmlndXJhdGlv biBmaWxlIgo7OwoKKCogVHJlYXRpbmcgY29tbW9uIGFyZ3MgKikKbGV0IHBh cnNlX2NvbW1vbiB+ZiA9IGZ1biB2ZXJib3NpdHkgY29sIHJjIC0+CiAgdmVy YiA6PSB2ZXJib3NpdHk7CiAgY29sb3IgOj0gY29sOwoKICBmIH5yYwo7OwoK KCogQ29tbW9uIHdheSB0byBkZWZpbmUgc3ViY29tbWFuZHMgKikKbGV0IHN1 YiB+ZiB+c3VtbWFyeSB+YXJncyBuYW1lID0KICBsZXQgb3BlbiBDb21tYW5k IGluCiAgbGV0IGRlZiA9CiAgICBiYXNpYyB+c3VtbWFyeToiIiBTcGVjLihj b21tb24gKz4gYXJncykgKCogWFhYIENvdWxkbid0IHNldCBzZXQgc3VtbWFy eSB3aXRoCiAgICB0aGUgYXJndW1lbnQgfnN1bW1hcnkgb2Ygc3ViIGZ1bmN0 aW9uLiBFcnJvciBpcwogICAgICBUaGlzIGV4cHJlc3Npb24gaGFzIHR5cGUg dCAtPiBieXRlcwogICAgICBidXQgYW4gZXhwcmVzc2lvbiB3YXMgZXhwZWN0 ZWQgb2YgdHlwZSBieXRlcyopCiAgICAgIChwYXJzZV9jb21tb24gfmYpCiAg aW4KICAgICggbmFtZSwgZGVmICkKOzsKCigqIFR3byBzdWIgY29tbWFuZHMg KikKCigqIERpc3BsYXkgdGhlIHN1bSBvZiB0aGUgYXJndW1lbnRzICopCmxl dCBzdW0gPQogIHN1YgogICAgfmY6KGZ1biB+cmMgXyAoKSAtPiAoKiBYWFgg U3RyYW5nZSBhcmd1bWVudHMgcGFzc2VkIGhlcmUgKikKICAgICAgKCogV2Ug d291bGQgbGlrZSB0byBnZXQgdGhlIG51bWJlcnMgcGFzc2VkIGluIGFyZ3Vt ZW50cyAoImZpcnN0IG51bWJlciIKICAgICAgICogYW5kICJzZWNvbmQgbnVt YmVyIiBiZWxvdykgKikKICAgICAgKCk7CiAgICAgICgqIFNvbWUgY29kZSB0 byB1c2UgY29tbW9uIGFyZ3VtZW50cyAqKQogICAgICBpZiAhY29sb3IgdGhl biBwcmludGYgIkNvbG9yZWRcbiIgZWxzZSBwcmludF9lbmRsaW5lIHJjKQog ICAgfmFyZ3M6KENvbW1hbmQuU3BlYy4oCiAgICAgIGVtcHR5CiAgICAgICs+ IGFub24gKCJmaXJzdCBudW1iZXIiICU6IGludCkKICAgICAgKz4gYW5vbiAo InNlY29uZCBudW1iZXIiICU6IGludCkKICAgICAgKSkKICAgIH5zdW1tYXJ5 OiJTdW0iCiAgICAic3VtIgo7OwoKKCogUHJpbnQgc29tZSBzZXR0aW5ncyBh bmQgYSBudW1iZXIgcGFzc2VkIHRvIHRoZSBwcm9ncmFtICopCmxldCBzZXR0 aW5ncyA9CiAgc3ViCiAgICB+ZjooZnVuIH5yYyBfICgpIC0+CiAgICAgIHBy aW50ZiAiU2V0dGluZ3NcbiI7CiAgICAgIHByaW50ZiAiUmM6ICVzIiByYzsK ICAgICAgcHJpbnRmICJDb2xvcjogJWIiICFjb2xvcikKICAgIH5hcmdzOihs ZXQgb3BlbiBDb21tYW5kLlNwZWMgaW4KICAgICAgZW1wdHkKICAgICAgKQog ICAgfnN1bW1hcnk6IkRpc3BsYXkgc2V0dGluZ3MiCiAgICAic2V0dGluZ3Mi Cjs7CgpsZXQgKCkgPQogIGxldCBvcGVuIENvbW1hbmQgaW4KICBncm91cCB+ c3VtbWFyeToiQSBwcm9ncmFtIHRvIHRlc3QiIFsgc3VtIDsgc2V0dGluZ3Mg XQogIHw+IHJ1biB+dmVyc2lvbjoiIiB+YnVpbGRfaW5mbzoiIiB+YXJndjpb XQo7Owo= --=_96c967b4741fde974cfbdddf5b1b5417--