[Mono-bugs] [Bug 79208][Wis] New - Mono.GetOptions Usage statement should show filename

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Aug 29 12:09:56 EDT 2006


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by foxxyzoe at gmail.com.

http://bugzilla.ximian.com/show_bug.cgi?id=79208

--- shadow/79208	2006-08-29 12:09:55.000000000 -0400
+++ shadow/79208.tmp.32625	2006-08-29 12:09:55.000000000 -0400
@@ -0,0 +1,53 @@
+Bug#: 79208
+Product: Mono: Class Libraries
+Version: 1.0
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Wishlist
+Component: Mono.POSIX
+AssignedTo: miguel at ximian.com                            
+ReportedBy: foxxyzoe at gmail.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Mono.GetOptions Usage statement should show filename
+
+NOTE: This has nothing to do with Mono.POSIX but there was no
+Mono.GetOptions or generic component option so I just had to pick one.
+---
+
+The usage statement shown with "--help" prints a line like this:
+
+"Usage: MyAssemblyName [options]"
+
+In Mono.GetOptions/OptionList.cs the code looks like this (condensed):
+
+entry = Assembly.GetEntryAssembly();
+appExeName = entry.GetName().Name;
+return "Usage: " + appExeName + " [options]";
+
+AssemblyName.Name returns the assembly name but that's not what we want. 
+As a simple example, the file extension is stripped and so it doesn't even
+print MyAssemblyName.exe.  Regardless of this, many times there is a small
+script in /usr/bin which runs the actual assembly.  In this situation, the
+name printed in the usage statement may be unrelated to the actual
+executable name as the user sees it.
+
+Parsing the command line via Environment.GetCommandLineArgs() will only
+return whatever was passed to /usr/bin/mono and thus won't show what the
+user actually typed should a script be used.  So perhaps we should back up
+a level into Mono.GetOptions.Options and just add an overload to
+Mono.GetOptionsOptionList constructor with a parameter to specify the
+program name.
+
+Additionally, perhaps a pre-defined option such as "--exe-name" could be
+added to Mono.Options, which would take the commandline name as an
+argument.  Then in the /usr/bin script, the program author could write
+"mono /usr/lib/foo/foo.exe --exe-name $0".
+
+Just ideas but somehow I would like the ability to get the actual program
+name so as to not confuse the user.


More information about the mono-bugs mailing list