]> git.ipfire.org Git - people/ms/ipfire-3.x.git/blame - pkgs/build-essentials/quality-agent/quality-agent.d/050-invalid-interpreters
avahi: Update to 0.6.30.
[people/ms/ipfire-3.x.git] / pkgs / build-essentials / quality-agent / quality-agent.d / 050-invalid-interpreters
CommitLineData
95cdc7ab
MT
1#!/bin/bash
2
3. $(dirname ${0})/qa-include
4
5DESC="Detect invalid interpreters."
6
7check() {
8 local failed=0
9
10 local file
11 local interpreter
12 for file in $(find ${BUILDROOT} -type f 2>/dev/null); do
13 # If a file is not executeable we don't need to check it
14 [ -x "${file}" ] || continue
15
16 if file_is_script ${file}; then
17 interpreter=$(file_get_interpreter ${file})
18
19 if grep -q /usr/local <<<${interpreter}; then
20 failed=1
21 log_error " Interpreter in /usr/local: ${file}"
22 fi
23
24 # Search for bad /usr/bin/env
25 if [ "$(basename ${interpreter})" = "env" ]; then
26 # Autofix that crap
27 sed -i ${file} \
28 -e "s,/usr/bin/env python.\..,/usr/bin/python," \
29 -e "s,/usr/bin/env python,/usr/bin/python," \
30 -e "s,/usr/bin/env perl,/usr/bin/perl,"
31
32 # If we could not fix it, raise an error
33 if [ "${interpreter}" = "$(file_get_interpreter ${file})" ]; then
34 failed=1
35 log_error " Script uses forbidden \"env\" interpreter: ${file}"
36 fi
37 fi
38 fi
39 done
40
41 return ${failed}
42}
43
44run