kate.ward | f51c616 | 2008-06-17 16:38:35 +0000 | [diff] [blame] | 1 | ------------------------------ |
| 2 | shFlags.sh 1.0.0 Release Notes |
| 3 | ------------------------------ |
| 4 | |
| 5 | Preface |
| 6 | ------- |
| 7 | Copyright 2008 Kate Ward. All Rights Reserved. |
| 8 | Released under the LGPL (GNU Lesser General Public License) |
| 9 | |
| 10 | Author: Kate Ward (kate.ward@forestent.com) |
| 11 | |
| 12 | This document covers any known issues and workarounds for the stated release of |
| 13 | shFlags. |
| 14 | |
| 15 | General info |
| 16 | ------------ |
| 17 | |
| 18 | This is the first official release of shFlags. The project is modeled after the |
kate.ward | 90fd99d | 2008-06-18 20:51:29 +0000 | [diff] [blame] | 19 | gflags code released by Google on http://code.google.com/p/google-gflags/. Many |
| 20 | thanks for the code they have provided. |
kate.ward | f51c616 | 2008-06-17 16:38:35 +0000 | [diff] [blame] | 21 | |
| 22 | As this is the first release, there are bound to be issues. Feel free |
| 23 | |
| 24 | Disclamer |
| 25 | --------- |
| 26 | |
| 27 | The unit tests |
| 28 | -------------- |
| 29 | |
kate.ward | 90fd99d | 2008-06-18 20:51:29 +0000 | [diff] [blame] | 30 | shFlags is designed to work on as many environments as possible, but not all |
kate.ward | f51c616 | 2008-06-17 16:38:35 +0000 | [diff] [blame] | 31 | environments are created equal. As such, not all of the unit tests will succeed |
| 32 | on every platform. The unit tests are therefore designed to fail, indicating to |
| 33 | the tester that the supported functionality is not present, but an additional |
kate.ward | 90fd99d | 2008-06-18 20:51:29 +0000 | [diff] [blame] | 34 | test is present to verify that shFlags properly caught the limitation and |
kate.ward | f51c616 | 2008-06-17 16:38:35 +0000 | [diff] [blame] | 35 | presented the user with an appropriate error message. |
| 36 | |
kate.ward | 90fd99d | 2008-06-18 20:51:29 +0000 | [diff] [blame] | 37 | shFlags tries to support both the standard and enhanced versions of ``getopt``. |
| 38 | As each responds differently, and not everything is supported on the standard |
kate.ward | f51c616 | 2008-06-17 16:38:35 +0000 | [diff] [blame] | 39 | version, some unit tests will be skipped (i.e. ASSERTS will not be thrown) when |
kate.ward | 90fd99d | 2008-06-18 20:51:29 +0000 | [diff] [blame] | 40 | the standard version of ``getopt`` is detected. The reason being that there is |
| 41 | no point testing for functionality that is positively known not to exist. A |
| 42 | tally of skipped tests will be kept for later reference. |
kate.ward | f51c616 | 2008-06-17 16:38:35 +0000 | [diff] [blame] | 43 | |
| 44 | Standard vs Enhanced getopt |
| 45 | --------------------------- |
| 46 | |
| 47 | Here is a matrix of the supported features of the various getopt variants. |
| 48 | |
kate.ward | f8ea863 | 2008-06-18 19:06:40 +0000 | [diff] [blame] | 49 | +-------------------------+---+---+ |
| 50 | |Feature |std|enh| |
| 51 | +=========================+===+===+ |
| 52 | |short option names | Y | Y | |
| 53 | |long option names | N | Y | |
| 54 | |spaces in string options | N | Y | |
| 55 | +-------------------------+---+---+ |
kate.ward | f51c616 | 2008-06-17 16:38:35 +0000 | [diff] [blame] | 56 | |
| 57 | Known Issues |
| 58 | ------------ |
| 59 | |
| 60 | The getopt version provided by default with all versions of Solaris (up to and |
kate.ward | f8ea863 | 2008-06-18 19:06:40 +0000 | [diff] [blame] | 61 | including Solaris 10) is the standard version. As such, only short flags are |
| 62 | supported. |
kate.ward | f51c616 | 2008-06-17 16:38:35 +0000 | [diff] [blame] | 63 | |
| 64 | The getopt version provided by default with all versions of Mac OS X (up to and |
kate.ward | f8ea863 | 2008-06-18 19:06:40 +0000 | [diff] [blame] | 65 | including 10.5) is the standard version. As such, only short flags are |
| 66 | supported. |
kate.ward | f51c616 | 2008-06-17 16:38:35 +0000 | [diff] [blame] | 67 | |
| 68 | Workarounds |
| 69 | ----------- |
| 70 | |
| 71 | The zsh shell requires the 'shwordsplit' option to be set, and the special |
| 72 | FLAGS_PARENT variable must be defined. |