2018-09-13 02:33:32 +03:00
|
|
|
#require test-repo execbit hg10
|
2015-12-22 14:05:56 +03:00
|
|
|
|
2016-05-11 07:49:27 +03:00
|
|
|
$ . "$TESTDIR/helpers-testrepo.sh"
|
2015-12-22 14:05:56 +03:00
|
|
|
$ cd "`dirname "$TESTDIR"`"
|
|
|
|
|
2018-09-13 02:33:32 +03:00
|
|
|
$ testrepohg files . > "$TESTTMP/filelist"
|
|
|
|
|
|
|
|
$ python << EOF
|
|
|
|
> import os, stat
|
|
|
|
> for path in open(os.path.join(os.environ["TESTTMP"], "filelist")).read().splitlines():
|
|
|
|
> if path.startswith("fb/"):
|
|
|
|
> continue
|
|
|
|
> content = open(path).read()
|
|
|
|
> isexec = bool(stat.S_IEXEC & os.stat(path).st_mode)
|
|
|
|
> ispy = path.endswith(".py")
|
|
|
|
> issh = path.endswith(".sh")
|
|
|
|
> isrs = path.endswith(".rs")
|
|
|
|
> if content.startswith("#!"):
|
|
|
|
> interpreter = os.path.basename(content.split("\n")[0].split()[-1])
|
|
|
|
> else:
|
|
|
|
> interpreter = None
|
|
|
|
> if ispy and isexec and interpreter not in {"python", "python2", "python3"}:
|
|
|
|
> print("%s is a Python script but does not have Python interpreter specified" % path)
|
|
|
|
> elif issh and isexec and interpreter not in {"sh", "bash", "zsh", "fish"}:
|
|
|
|
> print("%s is a Shell script but does not have Shell interpreter specified" % path)
|
|
|
|
> elif isexec and not interpreter:
|
|
|
|
> print("%s is executable but does not have #!" % path)
|
|
|
|
> elif not isexec and interpreter and not isrs:
|
|
|
|
> print("%s is not an executable but does have #!" % path)
|
|
|
|
> EOF
|
|
|
|
tests/fixtures/addspecial.sh is not an executable but does have #!
|
|
|
|
tests/fixtures/mergeexternals.sh is not an executable but does have #!
|
|
|
|
tests/fixtures/project_name_with_space.sh is not an executable but does have #!
|
|
|
|
tests/fixtures/rename-closed-branch-dir.sh is not an executable but does have #!
|
|
|
|
tests/infinitepush/library.sh is not an executable but does have #!
|
2019-07-10 10:59:56 +03:00
|
|
|
tests/stresstest-atomicreplace.py is not an executable but does have #!
|
2018-09-13 02:33:32 +03:00
|
|
|
tests/test-fb-hgext-cstore-treemanifest.py is a Python script but does not have Python interpreter specified
|
|
|
|
tests/test-fb-hgext-cstore-uniondatapackstore.py is a Python script but does not have Python interpreter specified
|