From a6f43d09d7e015c0612bfe5980827fc8dfc4d12e Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Mon, 23 Jun 2014 17:38:36 +0200 Subject: [PATCH] [ticket/12693] Add a travis test that checks file permissions PHPBB3-12693 --- .travis.yml | 1 + travis/check-executable-files.sh | 52 ++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 travis/check-executable-files.sh diff --git a/.travis.yml b/.travis.yml index fe91fe78c8..3bce6a01f1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,6 +38,7 @@ before_script: script: - travis/phing-sniff.sh $DB $TRAVIS_PHP_VERSION - travis/check-image-icc-profiles.sh $DB $TRAVIS_PHP_VERSION + - travis/check-executable-files.sh $DB $TRAVIS_PHP_VERSION phpBB/ - phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml - sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' -a '$DB' = 'mysqli' -a '$TRAVIS_PULL_REQUEST' != 'false' ]; then git-tools/commit-msg-hook-range.sh origin/$TRAVIS_BRANCH..FETCH_HEAD; fi" diff --git a/travis/check-executable-files.sh b/travis/check-executable-files.sh new file mode 100644 index 0000000000..a5d4ded7e1 --- /dev/null +++ b/travis/check-executable-files.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# +# This file is part of the phpBB Forum Software package. +# +# @copyright (c) phpBB Limited +# @license GNU General Public License, version 2 (GPL-2.0) +# +# For full copyright and license information, please see +# the docs/CREDITS.txt file. +# +set -e + + +DB=$1 +TRAVIS_PHP_VERSION=$2 +path="$3" + +if [ "$TRAVIS_PHP_VERSION" == "5.5" -a "$DB" == "mysqli" ] +then + # Get the list of the executables files under a given path + # The part "-name 'develop' -o -name 'vendor'" defines a set + # of ignored directories. + # The part "-path '*/bin/phpbbcli.php' -o -name 'composer.phar'" + # defines a whitelist. + + executables_files=$( \ + find ${path} \ + '(' \ + '(' \ + -name 'develop' -o \ + -name 'vendor' \ + ')' \ + -a -type d -prune -a -type f \ + ')' \ + -o '(' \ + -not '(' \ + -path '*/bin/phpbbcli.php' -o \ + -name 'composer.phar' \ + ')' \ + -a '(' \ + -perm 755 -a \ + -type f \ + ')' \ + ')' \ + ) + + if [ "$executables_files" != '' ] + then + echo "$executables_files MUST NOT be executable."; + exit 1; + fi +fi \ No newline at end of file