From f961d745e32403fec6a6eb28fac21c948258bb5c Mon Sep 17 00:00:00 2001 From: Ben Nemec Date: Wed, 19 Mar 2014 20:56:27 -0500 Subject: [PATCH] Add dib-lint script This will provide a place to put checks that catch common errors in elements. To start, this just checks that files starting with a shebang are chmod +x so they can actually be run. Change-Id: I4116a8f38f7bdfc5866764354c459fad8ca18e92 --- bin/dib-lint | 30 ++++++++++++++++++++++++++++++ setup.cfg | 1 + tox.ini | 1 + 3 files changed, 32 insertions(+) create mode 100755 bin/dib-lint diff --git a/bin/dib-lint b/bin/dib-lint new file mode 100755 index 00000000..a4b1cfe8 --- /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 41ef33c6..d9d69b7e 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 2b49776e..2bb367b3 100644 --- a/tox.ini +++ b/tox.ini @@ -14,6 +14,7 @@ commands= [testenv:pep8] commands = flake8 {posargs} + dib-lint [testenv:venv] commands = {posargs}