author Gregory Szorc <>
Thu, 27 Jul 2017 14:12:35 -0700
changeset 420202 6504499c1689d9199c355e07164b849f9144ca2f
parent 300191 211d62ae4c2710b6a46a4bd11251b77fca7b9ef8
child 304036 d1a4b331d80bc4daea15a7df4057205483b1f276
child 473817 da3c81f986fa63b42a2874b1791eddcdbfbe8424
permissions -rw-r--r--
Bug 1384396 - Detect Watchman Mercurial integration in configure; r=nalexander Configure now detects VCS info. Configure now detects Watchman. We can combine the two so configure can detect if Mercurial is configured with Watchman enabled. This commit does two things: 1) collects the Mercurial config so it is available to downstream checks 2) examines the config for presence and state of the fsmonitor extension We don't yet do anything with the fsmonitor state. But it should be useful soon. Also, the return value is kinda wonky. This will almost certainly be improved as soon as there is an actual consumer. MozReview-Commit-ID: HyHZ2X8VI0h

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at

import configobj
import sys
import re
from StringIO import StringIO

    (file, section, key) = sys.argv[1:]
except ValueError:
    print "Usage: <file> <section> <setting>"

with open(file) as fh:
    content = re.sub('^\s*;', '#',, flags=re.M)

c = configobj.ConfigObj(StringIO(content))

    s = c[section]
except KeyError:
    print >>sys.stderr, "Section [%s] not found." % section

    print s[key]
except KeyError:
    print >>sys.stderr, "Key %s not found." % key