mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
6c01155b0a
Similar to d892d0231a82, the python executable could be python2.X, Python, pypy, or maybe something futuristic like pyston or nuitka.
139 lines
4.3 KiB
Perl
139 lines
4.3 KiB
Perl
hg debuginstall
|
|
$ hg debuginstall
|
|
checking encoding (ascii)...
|
|
checking Python executable (*) (glob)
|
|
checking Python version (2.*) (glob)
|
|
checking Python lib (*lib*)... (glob)
|
|
checking installed modules (*mercurial)... (glob)
|
|
checking templates (*mercurial?templates)... (glob)
|
|
checking default template (*mercurial?templates?map-cmdline.default) (glob)
|
|
checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
|
|
checking username (test)
|
|
no problems detected
|
|
|
|
hg debuginstall JSON
|
|
$ hg debuginstall -Tjson
|
|
[
|
|
{
|
|
"defaulttemplate": "*mercurial?templates?map-cmdline.default", (glob)
|
|
"defaulttemplateerror": null,
|
|
"defaulttemplatenotfound": "default",
|
|
"editor": "* -c \"import sys; sys.exit(0)\"", (glob)
|
|
"editornotfound": false,
|
|
"encoding": "ascii",
|
|
"encodingerror": null,
|
|
"extensionserror": null,
|
|
"hgmodules": "*mercurial", (glob)
|
|
"problems": 0,
|
|
"pythonexe": "*", (glob)
|
|
"pythonlib": "*", (glob)
|
|
"pythonver": "*.*.*", (glob)
|
|
"templatedirs": "*mercurial?templates", (glob)
|
|
"username": "test",
|
|
"usernameerror": null,
|
|
"vinotfound": false
|
|
}
|
|
]
|
|
|
|
hg debuginstall with no username
|
|
$ HGUSER= hg debuginstall
|
|
checking encoding (ascii)...
|
|
checking Python executable (*) (glob)
|
|
checking Python version (2.*) (glob)
|
|
checking Python lib (*lib*)... (glob)
|
|
checking installed modules (*mercurial)... (glob)
|
|
checking templates (*mercurial?templates)... (glob)
|
|
checking default template (*mercurial?templates?map-cmdline.default) (glob)
|
|
checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
|
|
checking username...
|
|
no username supplied
|
|
(specify a username in your configuration file)
|
|
1 problems detected, please check your install!
|
|
[1]
|
|
|
|
path variables are expanded (~ is the same as $TESTTMP)
|
|
$ mkdir tools
|
|
$ touch tools/testeditor.exe
|
|
#if execbit
|
|
$ chmod 755 tools/testeditor.exe
|
|
#endif
|
|
$ hg debuginstall --config ui.editor=~/tools/testeditor.exe
|
|
checking encoding (ascii)...
|
|
checking Python executable (*) (glob)
|
|
checking Python version (*) (glob)
|
|
checking Python lib (*lib*)... (glob)
|
|
checking installed modules (*mercurial)... (glob)
|
|
checking templates (*mercurial?templates)... (glob)
|
|
checking default template (*mercurial?templates?map-cmdline.default) (glob)
|
|
checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
|
|
checking username (test)
|
|
no problems detected
|
|
|
|
#if test-repo
|
|
$ cat >> wixxml.py << EOF
|
|
> import os, subprocess, sys
|
|
> import xml.etree.ElementTree as ET
|
|
>
|
|
> # MSYS mangles the path if it expands $TESTDIR
|
|
> testdir = os.environ['TESTDIR']
|
|
> ns = {'wix' : 'http://schemas.microsoft.com/wix/2006/wi'}
|
|
>
|
|
> def directory(node, relpath):
|
|
> '''generator of files in the xml node, rooted at relpath'''
|
|
> dirs = node.findall('./{%(wix)s}Directory' % ns)
|
|
>
|
|
> for d in dirs:
|
|
> for subfile in directory(d, relpath + d.attrib['Name'] + '/'):
|
|
> yield subfile
|
|
>
|
|
> files = node.findall('./{%(wix)s}Component/{%(wix)s}File' % ns)
|
|
>
|
|
> for f in files:
|
|
> yield relpath + f.attrib['Name']
|
|
>
|
|
> def hgdirectory(relpath):
|
|
> '''generator of tracked files, rooted at relpath'''
|
|
> hgdir = "%s/../mercurial" % (testdir)
|
|
> args = ['hg', '--cwd', hgdir, 'files', relpath]
|
|
> proc = subprocess.Popen(args, stdout=subprocess.PIPE,
|
|
> stderr=subprocess.PIPE)
|
|
> output = proc.communicate()[0]
|
|
>
|
|
> slash = '/'
|
|
> for line in output.splitlines():
|
|
> if os.name == 'nt':
|
|
> yield line.replace(os.sep, slash)
|
|
> else:
|
|
> yield line
|
|
>
|
|
> tracked = [f for f in hgdirectory(sys.argv[1])]
|
|
>
|
|
> xml = ET.parse("%s/../contrib/wix/%s.wxs" % (testdir, sys.argv[1]))
|
|
> root = xml.getroot()
|
|
> dir = root.find('.//{%(wix)s}DirectoryRef' % ns)
|
|
>
|
|
> installed = [f for f in directory(dir, '')]
|
|
>
|
|
> print('Not installed:')
|
|
> for f in sorted(set(tracked) - set(installed)):
|
|
> print(' %s' % f)
|
|
>
|
|
> print('Not tracked:')
|
|
> for f in sorted(set(installed) - set(tracked)):
|
|
> print(' %s' % f)
|
|
> EOF
|
|
|
|
$ python wixxml.py help
|
|
Not installed:
|
|
help/common.txt
|
|
help/hg.1.txt
|
|
help/hgignore.5.txt
|
|
help/hgrc.5.txt
|
|
Not tracked:
|
|
|
|
$ python wixxml.py templates
|
|
Not installed:
|
|
Not tracked:
|
|
|
|
#endif
|