bfb6dfb91a87f536be7ea18f700b2a8f2b2dbe1b
[genkernel.git] / gen_funcs.sh
1 #!/bin/bash
2
3 isTrue() {
4         case "$1" in
5                 [Tt][Rr][Uu][Ee])
6                         return 0
7                 ;;
8                 [Tt])
9                         return 0
10                 ;;
11                 [Yy][Ee][Ss])
12                         return 0
13                 ;;
14                 [Yy])
15                         return 0
16                 ;;
17                 1)
18                         return 0
19                 ;;
20         esac
21         return 1
22 }
23
24
25 if isTrue ${USECOLOR}
26 then
27 #       COLS="`stty size 2> /dev/null`"
28 #        COLS="`getcols ${COLS}`"
29 #        COLS=$((${COLS} - 7))
30 #        ENDCOL=$'\e[A\e['${COLS}'G'    # Now, ${ENDCOL} will move us to the end of the
31                                        # column;  irregardless of character width
32         GOOD=$'\e[32;01m'
33         WARN=$'\e[33;01m'
34         BAD=$'\e[31;01m'
35         NORMAL=$'\e[0m'
36         HILITE=$'\e[36;01m'
37         BRACKET=$'\e[34;01m'
38 else
39         GOOD=""
40         WARN=""
41         BAD=""
42         NORMAL=""
43         HILITE=""
44         BRACKET=""
45 fi
46
47
48 # print_info(debuglevel, print [, newline [, prefixline [, forcefile ] ] ])
49 print_info() {
50         local NEWLINE=1
51         local FORCEFILE=0
52         local PREFIXLINE=1
53         local SCRPRINT=0
54         local STR=""
55
56         # NOT ENOUGH ARGS
57         if [ "$#" -lt "2" ] ; then return 1; fi
58
59         # IF 3 OR MORE ARGS, CHECK IF WE WANT A NEWLINE AFTER PRINT
60         if [ "$#" -gt "2" ]
61         then
62                 if isTrue "$3"
63                 then
64                         NEWLINE="1";
65                 else
66                         NEWLINE="0";
67                 fi
68         fi
69
70         # IF 4 OR MORE ARGS, CHECK IF WE WANT TO PREFIX WITH A *
71         if [ "$#" -gt "3" ]
72         then
73                 if isTrue "$4"
74                 then
75                         PREFIXLINE="1"
76                 else
77                         PREFIXLINE="0"
78                 fi
79         fi
80
81         # IF 5 OR MORE ARGS, CHECK IF WE WANT TO FORCE OUTPUT TO DEBUG
82         # FILE EVEN IF IT DOESN'T MEET THE MINIMUM DEBUG REQS
83         if [ "$#" -gt "4" ]
84         then
85                 if isTrue "$5"
86                 then
87                         FORCEFILE="1"
88                 else
89                         FORCEFILE="0"
90                 fi
91         fi
92
93         # PRINT TO SCREEN ONLY IF PASSED DEBUGLEVEL IS HIGHER THAN
94         # OR EQUAL TO SET DEBUG LEVEL
95         if [ "$1" -lt "${DEBUGLEVEL}" -o "$1" -eq "${DEBUGLEVEL}" ]
96         then
97                 SCRPRINT="1"
98         fi
99
100         # RETURN IF NOT OUTPUTTING ANYWHERE
101         if [ "${SCRPRINT}" != "1" -a "${FORCEFILE}" != "1" ]
102         then
103                 return 0
104         fi
105
106         # STRUCTURE DATA TO BE OUTPUT TO SCREEN, AND OUTPUT IT
107         if [ "${SCRPRINT}" -eq "1" ]
108         then
109                 if [ "${PREFIXLINE}" = "1" ]
110                 then
111                         STR="${GOOD}*${NORMAL} ${2}"
112                 else
113                         STR="${2}"
114                 fi
115
116                 if [ "${NEWLINE}" = "0" ]
117                 then
118                         echo -ne "${STR}"
119                 else
120                         echo "${STR}"
121                 fi
122         fi
123
124         # STRUCTURE DATA TO BE OUTPUT TO FILE, AND OUTPUT IT
125         if [ "${SCRPRINT}" -eq "1" -o "${FORCEFILE}" -eq "1" ]
126         then
127                 if [ "${PREFIXLINE}" = "1" ]
128                 then
129                         STR="* ${2}"
130                 else
131                         STR="${2}"
132                 fi
133
134                 if [ "${NEWLINE}" = "0" ]
135                 then
136                         echo -ne "${STR}" >> ${DEBUGFILE}
137                 else
138                         echo "${STR}" >> ${DEBUGFILE}
139                 fi
140         fi
141
142         return 0
143 }
144
145 # var_replace(var_name, var_value, string)
146 # $1 = variable name
147 # $2 = variable value
148 # $3 = string
149 var_replace()
150 {
151   echo "${3}" | sed -e "s/%%${1}%%/${2}/g" -
152 }
153
154 arch_replace() {
155   var_replace "ARCH" "${ARCH}" "${1}"
156 }
157
158 clear_log() {
159   rm -f ${DEBUGFILE}
160   touch ${DEBUGFILE}
161 }
162
163 gen_die() {
164         if [ "$#" -gt "0" ]
165         then
166                 print_info 1 "gen_die(): ${1}"
167         fi
168         exit 1
169 }