Mercurial > hg > pyhgsh
view mercurial/fancyopts.py @ 2024:6328445b0e71
Fixes to testpid() for Windows.
Handle processes that no longer exist and processes that belong to another user.
Enables the lock breaking changes from d314a89fa4f1 and subsequently "fixes" the left over locks reported in bug 112.
author | Lee Cantey <lcantey@gmail.com> |
---|---|
date | Thu, 30 Mar 2006 18:20:08 -0800 |
parents | bf4e7ef08741 |
children |
line wrap: on
line source
import getopt def fancyopts(args, options, state): long = [] short = '' map = {} dt = {} for s, l, d, c in options: pl = l.replace('-', '_') map['-'+s] = map['--'+l] = pl state[pl] = d dt[pl] = type(d) if not d is None and not callable(d): if s: s += ':' if l: l += '=' if s: short = short + s if l: long.append(l) opts, args = getopt.getopt(args, short, long) for opt, arg in opts: if dt[map[opt]] is type(fancyopts): state[map[opt]](state,map[opt],arg) elif dt[map[opt]] is type(1): state[map[opt]] = int(arg) elif dt[map[opt]] is type(''): state[map[opt]] = arg elif dt[map[opt]] is type([]): state[map[opt]].append(arg) elif dt[map[opt]] is type(None): state[map[opt]] = 1 return args