diff --git a/bin/dib-lint b/bin/dib-lint new file mode 100755 index 000000000..a4b1cfe89 --- /dev/null +++ b/bin/dib-lint @@ -0,0 +1,30 @@ +#!/bin/bash + +# Copyright 2014 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This script checks all files in the "elements" directory for some +# common mistakes and exits with a non-zero status if it finds any. + +rc=0 +for i in $(find elements -type f); do + # Check that files starting with a shebang are +x + firstline=$(head -n 1 "$i") + if [ ! -x "$i" ] && [ "${firstline:0:2}" = "#!" ]; then + echo "ERROR: $i is not executable" + rc=1 + fi +done +exit $rc \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 41ef33c6c..d9d69b7ed 100644 --- a/setup.cfg +++ b/setup.cfg @@ -22,6 +22,7 @@ packages = # dib-run-parts and ramdisk-image-create are symlinks which become # real files on install; see lp bug #1212482 scripts = + bin/dib-lint bin/dib-run-parts bin/disk-image-create bin/disk-image-get-kernel diff --git a/tox.ini b/tox.ini index 2b49776ee..2bb367b32 100644 --- a/tox.ini +++ b/tox.ini @@ -14,6 +14,7 @@ commands= [testenv:pep8] commands = flake8 {posargs} + dib-lint [testenv:venv] commands = {posargs}