For the personal project (existing only in my PC) I use Wiki in a Jar. In the past I worked with Redmine (it has furthermore a system of bug tracking and SCM  )

Wiki-like tool for writing specifications and documentation
Currently I'm writing a Bash script which has the following requirements:


it should run on a wide variety of Unix/Linux platforms
it should support both short and (GNU) long options


I know that getopts would be the preferred way in terms of portability but AFAIK it doesn't support long options.

getopt supports long options but the BashGuide recommends strongly against it:


  Never use getopt(1). getopt cannot handle empty arguments strings, or
  arguments with embedded whitespace. Please forget that it ever
  existed.


So, there still is the option of manual parsing. This is error-prone, produces quite some boilerplate code, and I need to handle errors by myself (I guess getopt(s) do error-handling by themselves).

So, what would be the preferred choice in this case?
