Parse command line options.

def parse_options(self, args, depth=0):
        """Parse command line options.
        """
        try:
            options, remaining_args = getopt.gnu_getopt(args,
                'CPRSTbc:d:eghi:lmnpqsvwz',
                ('no-commit', 'no-tag', 'no-register', 'no-upload', 'dry-run',
                 'sign', 'identity=', 'dist-location=', 'version', 'help',
                 'push', 'quiet', 'svn', 'hg', 'git', 'develop', 'binary',
                 'list-locations', 'config-file=', 'wheel', 'zip', 'gztar',
                 'manifest-only', 'trace', 'egg', 'no-push'))
        except getopt.GetoptError as e:
            err_exit('mkrelease: %s\n%s' % (e.msg, USAGE))

        for name, value in options:
            if name in ('-C', '--no-commit'):
                self.skipcommit = True
            elif name in ('-T', '--no-tag'):
                self.skiptag = True
            elif name in ('-R', '--no-register'):
                self.skipregister = True
            elif name in ('-S', '--no-upload'):
                self.skipupload = True
            elif name in ('-n', '--dry-run'):
                self.skipcommit = self.skiptag = self.skipregister = self.skipupload = True
            elif name in ('-p', '--push'):
                self.push = True
            elif name in ('-P', '--no-push'):   # undocumented
                self.push = False
            elif name in ('-q', '--quiet'):
                self.quiet = True
            elif name in ('-s', '--sign'):
                self.sign = True
            elif name in ('-i', '--identity'):
                self.identity = value
            elif name in ('-d', '--dist-location'):
                self.locations.extend(self.locations.get_location(value))
            elif name in ('-l', '--list-locations'):
                self.list = True
            elif name in ('-m', '--manifest-only'):
                self.manifest = True
            elif name in ('-h', '--help'):
                msg_exit(HELP)
            elif name in ('-v', '--version'):
                msg_exit(VERSION)
            elif name in ('--svn', '--hg', '--git'):
                self.scmtype = name[2:]
            elif name in ('-e', '--develop'):
                self.develop = True
            elif name in ('-z', '--zip'):
                self.formats.append('zip')
            elif name in ('-g', '--gztar'):
                self.formats.append('gztar')
            elif name in ('-b', '--binary', '--egg'):
                self.formats.append('egg')
            elif name in ('-w', '--wheel'):
                self.formats.append('wheel')
            elif name in ('--trace',):          # undocumented
                os.environ['JARN_TRACE'] = '1'
            elif name in ('-c', '--config-file') and depth == 0:
                self.reset_defaults(expanduser(value))
                return self.parse_options(args, depth+1)

        return remaining_args