blob: b63e37629bd62a9fa7ff1b332c16795d1f4a10cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/fixheadtails.eclass,v 1.10 2005/12/20 01:31:53 vapier Exp $
#
# Author John Mylchreest <johnm@gentoo.org>
DEPEND=">=sys-apps/sed-4"
# ht_fix_all
# This fixes all files within the current directory.
# Do be used in src_unpack ; cd ${S}; ht_fix_all
# ht_fix_file <param> [<param>] [<param>]..
# This fixes the files passed by PARAM
# to be used for specific files. ie: ht_fix_file "${FILESDIR}/mypatch.patch"
do_sed_fix() {
einfo " - fixed $1"
sed -i \
-e 's/head \+-\([0-9]\)/head -n \1/g' \
-e 's/tail \+\([-+][0-9]\+\)c/tail -c \1/g' \
-e 's/tail \+\([-+][0-9]\)/tail -n \1/g' ${1} || \
die "sed ${1} failed"
}
ht_fix_file() {
local i
einfo "Replacing obsolete head/tail with POSIX compliant ones"
for i in "${@}"
do
do_sed_fix ${i}
done
}
ht_fix_all() {
local MATCHES
MATCHES=$(grep -l -s -i -R -e "head -[ 0-9]" -e "tail [+-][ 0-9]" * | sort -u)
[[ -n ${MATCHES} ]] \
&& ht_fix_file ${MATCHES} \
|| einfo "No need for ht_fix_all anymore !"
}
|