[Issue 3780] getopt improvements by Igor Lesik
https://issues.dlang.org/show_bug.cgi?id=3780 --- Comment #23 from Robert Schadek --- I will fix this tonight --
[Issue 3780] getopt improvements by Igor Lesik
https://issues.dlang.org/show_bug.cgi?id=3780 --- Comment #22 from Alexey G --- getopt.d contain "getoptX" strings (in ddoc comments). something not done? --
[Issue 3780] getopt improvements by Igor Lesik
https://issues.dlang.org/show_bug.cgi?id=3780 --- Comment #21 from Robert Schadek --- You're right, I just checked and it is not in 2.066. I though it got in --
[Issue 3780] getopt improvements by Igor Lesik
https://issues.dlang.org/show_bug.cgi?id=3780 --- Comment #20 from jens.k.muel...@gmx.de --- The changes are also not in dmd.2.066.0.zip which makes me think the changelog is in error. Or the 2.066 release. --
[Issue 3780] getopt improvements by Igor Lesik
https://issues.dlang.org/show_bug.cgi?id=3780 --- Comment #19 from Robert Schadek --- the page doc is out of sync --
[Issue 3780] getopt improvements by Igor Lesik
https://issues.dlang.org/show_bug.cgi?id=3780 --- Comment #18 from jens.k.muel...@gmx.de --- I'm a little bit confused. The changelog says it was fixed in 2.066 (http://dlang.org/changelog.html). I'm using dmd.2.066.0.zip. Further its documentation does not look like it contains any new documentation regarding this feature (http://dlang.org/phobos/std_getopt.html). So I assume the changelog is just wrong. --
[Issue 3780] getopt improvements by Igor Lesik
https://issues.dlang.org/show_bug.cgi?id=3780 Robert Schadek changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #17 from Robert Schadek --- This one is done --
[Issue 3780] getopt improvements by Igor Lesik
https://d.puremagic.com/issues/show_bug.cgi?id=3780 --- Comment #16 from Andrej Mitrovic 2014-03-26 15:16:36 CET --- I've worked on a bit here but I have to work on it again as there was some nice feedback: https://github.com/D-Programming-Language/phobos/pull/1840 This is Issue 11876. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
https://d.puremagic.com/issues/show_bug.cgi?id=3780 Andrei Alexandrescu changed: What|Removed |Added Status|ASSIGNED|NEW --- Comment #15 from Andrei Alexandrescu 2014-03-26 06:17:57 PDT --- @Rpbert ask Andrej Mitrovic -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
https://d.puremagic.com/issues/show_bug.cgi?id=3780 Robert Schadek changed: What|Removed |Added CC||rburn...@gmail.com --- Comment #14 from Robert Schadek 2014-03-26 06:11:24 PDT --- Is anyone still working on this? I would like to take over. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
https://d.puremagic.com/issues/show_bug.cgi?id=3780 Nick Sabalausky changed: What|Removed |Added CC||cbkbbej...@mailinator.com --- Comment #13 from Nick Sabalausky 2014-03-24 18:10:46 PDT --- This report is somewhat vague. What does seem clear is the expectation of an optional way to help automate generating a help screen. But beyond that, can we get clarification on the scope and expectations of this enhancement request? -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
https://d.puremagic.com/issues/show_bug.cgi?id=3780 --- Comment #12 from jens.k.muel...@gmx.de 2013-11-19 00:13:00 PST --- I don't have the time to finish this. You can use my changes (if you want) to improve Phobos' getopt. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
https://d.puremagic.com/issues/show_bug.cgi?id=3780 Jonathan Crapuchettes changed: What|Removed |Added CC||jcrapuchet...@gmail.com --- Comment #11 from Jonathan Crapuchettes 2013-11-18 16:48:49 PST --- We use something like this in my company. It would be really nice to have it part of phobos. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 --- Comment #10 from Alexey G 2013-03-25 13:07:21 PDT --- > If somebody comments I'm happy to finish it. Good job! Thanx! > I don't like implementing stuff that nobody would use. Nobody? I have no statistics. But, IMHO, everybody, who write small command line utilities with D, today "invent the wheel" every time. Best way - to have this features in std library. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 --- Comment #9 from jens.k.muel...@gmx.de 2013-02-26 15:16:56 PST --- There is my pull request https://github.com/D-Programming-Language/phobos/pull/1030. If somebody comments I'm happy to finish it. The reason why I was less willing to finish it is that I don't like implementing stuff that nobody would use. So please comment on the API from a usage point of view and I will implement it. BTW Recently I was wondering whether it is the right way to throw exceptions because I find that this is not a rare situation. Actually it's a pretty common situation to do some usage error. But either way I want to finish it. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 --- Comment #8 from Andrei Alexandrescu 2013-02-26 09:21:14 PST --- Didn't have time to get to this, and probably won't for a while. Could anyone take it over? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 --- Comment #7 from Alexey G 2012-12-22 00:48:39 PST --- Any news? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 Alexey G changed: What|Removed |Added CC||golovanov_ale...@mail.ru --- Comment #6 from Alexey G 2012-05-20 14:05:16 PDT --- Any news? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 --- Comment #5 from jens.k.muel...@gmx.de 2012-01-03 07:15:19 PST --- It's still in my local repository. The point is that getting the other changes in is a bit problematic due to changing of defaults and breaking code. And the other getopt changes may break code. That's why I wanted to have all changes (including generating usage information) in one pull request. At the moment there is no decision whether breaking old code is worth it. That got me distracted. But I should finish the code. I will provide a new function called getOptions to avoid breaking any code since there is some controversy about the proper defaults and similar. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 Trass3r changed: What|Removed |Added CC||mrmoc...@gmx.de --- Comment #4 from Trass3r 2012-01-03 06:04:23 PST --- Where is that pull request? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 jens.k.muel...@gmx.de changed: What|Removed |Added CC||jens.k.muel...@gmx.de --- Comment #3 from jens.k.muel...@gmx.de 2011-06-15 10:30:26 PDT --- Igor, I already have the code in my local repository. I will create pull request if you don't mind and make you the author of that commit. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 Igor Lesik changed: What|Removed |Added CC||curo...@yahoo.com --- Comment #2 from Igor Lesik 2011-06-14 20:49:23 PDT --- I will see how I can work it into github, meanwhile I paste the original page as comment here. Igor getoptex One way to extend Phobos library std.getopt.getopt function is make a wrapper around it that could be feeded with usage information about every option and let it automatically gather all usage strings into one usage/help message block, similarly to Boost program_options library Links: http://en.wikipedia.org/wiki/Tuple http://www.digitalmars.com/d/2.0/phobos/std_getopt.html http://www.digitalmars.com/d/2.0/phobos/std_typetuple.html Below is an example how getoptEx could be used: import getoptex; import std.stdio; void main(string[] args) { string inputFile, outputFile; bool helpPrinted = getoptEx( "Test program to demonstrate getoptEx\n"~ "written by Igor Lesik on Feb 2010\n"~ "Usage: test1 { --switch }\n", args, std.getopt.config.caseInsensitive, "input", "\tinput file name,\n"~ "\tmust be html file", &inputFile, "output", "\toutput file name", &outputFile, "author", "\tprint name of\n"~ "\tthe author", delegate() {writeln("Igor Lesik");} ); if (helpPrinted) return; writeln("Input file name:", inputFile); writeln("Output file name:", outputFile); } If you call the program with --help option, then output is: >test1.exe --help Test program to demonstrate getoptEx written by Igor Lesik on Feb 2010 Usage: test1 { --switch } --input input file name, must be html file --output output file name --author print name of the author --help produce help message getopEx implementation: module getoptex; import std.stdio; import std.getopt; private import std.contracts; private import std.typetuple; private import std.conv; bool getoptEx(T...)(string helphdr, ref string[] args, T opts) { enforce(args.length, "Invalid arguments string passed: program name missing"); string helpMsg = GetoptHelp(opts); // extract all help strings bool helpPrinted = false; // state tells if called with "--help" void printHelp() { writeln("\n", helphdr, "\n", helpMsg, "--help", "\n\tproduce help message"); helpPrinted = true; } getopt(args, GetoptEx!(opts), "help", &printHelp); return helpPrinted; } private template GetoptEx(TList...) { static if (TList.length) { static if (is(typeof(TList[0]) : config)) { // it's a configuration flag, lets move on alias TypeTuple!(TList[0],GetoptEx!(TList[1 .. $])) GetoptEx; } else { // it's an option string, eat help string alias TypeTuple!(TList[0],TList[2],GetoptEx!(TList[3 .. $])) GetoptEx; } } else { alias TList GetoptEx; } } private string GetoptHelp(T...)(T opts) { static if (opts.length) { static if (is(typeof(opts[0]) : config)) { // it's a configuration flag, skip it return GetoptHelp(opts[1 .. $]); } else { // it's an option string string option = to!(string)(opts[0]); string help= to!(string)(opts[1]); return( "--"~option~"\n"~help~"\n"~GetoptHelp(opts[3 .. $]) ); } } else { return to!(string)("\n"); } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 --- Comment #1 from Andrei Alexandrescu 2011-06-05 20:12:47 PDT --- I can't find the code for download. Does anyone have Igor Lesik's email address? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3780] getopt improvements by Igor Lesik
http://d.puremagic.com/issues/show_bug.cgi?id=3780 Andrei Alexandrescu changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|nob...@puremagic.com|and...@metalanguage.com Severity|normal |enhancement -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---