blob: 3e899a1dc5c89bb823dfc0d2a9f56f597538898a (
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
43
44
45
46
47
48
49
50
51
52
53
54
55
|
CHAPTER="$1"
PACKAGE="$2"
if [ -f "${LFS}/sources/chapter${CHAPTER}/${PACKAGE}" ]; then
echo -e "${GRN}Package ${YLW}${PACKAGE} ${GRN}already built and installed for ${YLW}Chapter ${CHAPTER}.${RST}"
else
grep -i "^${PACKAGE}" packages.csv | grep -i -v "\.patch;" | while read line; do
VERSION="$(echo $line | cut -d\, -f2)"
URL="$(echo $line | cut -d\, -f3 | sed "s/@/${VERSION}/g")"
CACHEFILE="$(basename "${URL}")"
DIRNAME="$(echo "${CACHEFILE}" | sed 's/\(.*\)\.tar\..*/\1/')"
if [ -d "${DIRNAME}" ]; then
rm -rf ${DIRNAME}
fi
mkdir -p "${DIRNAME}"
echo -ne "${IBLU}Extracting ${YLW}${CACHEFILE}... "
tar xf "${CACHEFILE}" -C "${DIRNAME}" >/dev/null 2>&1 & pid=$!
spinner "$pid"
retval=$?
if [ "$retval" -ne 0 ]; then
echo -e "${GRN}Extraction ${RED}FAILED!${RST}"
return $retval
fi
#TOPLEVELDIR = "tar -tf ${CACHEFILE} | sed -e 's@/.*@@' | uniq"
pushd "${DIRNAME}" > /dev/null
if [ "$(ls -1A | wc -l)" == "1" ]; then
find */ -mindepth 1 -maxdepth 1 -exec mv -t ./ -- {} +
fi
echo -ne "\n${CYN}Compiling ${YLW}${PACKAGE}${RST}... "
sleep 5
mkdir -p "../log/chapter${CHAPTER}/"
source "../chapter${CHAPTER}/${PACKAGE}.sh" 2>&1 > "../log/chapter${CHAPTER}/${PACKAGE}.log" 2>&1 & pid=$!
spinner "$pid"
retval=$?
if [ "$retval" -ne 0 ]; then
echo -e "\n${GRN}Compiling ${YLW}${PACKAGE} ${RED}FAILED!${RST}"
popd > /dev/null
return $retval
else
echo -e "\n${GRN}Done Compiling ${YLW}${PACKAGE}${RST}"
touch ${LFS}/sources/chapter${CHAPTER}/${PACKAGE}
rm -rf ${LFS}/sources/${DIRNAME}
fi
popd > /dev/null
done
fi
|