aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packageinstall.sh38
1 files changed, 17 insertions, 21 deletions
diff --git a/packageinstall.sh b/packageinstall.sh
index 3e899a1..a890ded 100644
--- a/packageinstall.sh
+++ b/packageinstall.sh
@@ -1,3 +1,5 @@
+#!/bin/bash
+
CHAPTER="$1"
PACKAGE="$2"
@@ -5,19 +7,18 @@ 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")"
+ grep -i "^${PACKAGE}" packages.csv | grep -i -v "\.patch;" | while read -r 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/')"
+ #DIRNAME="$(echo "${CACHEFILE}" | sed 's/\(.*\)\.tar\..*/\1/')"
+ DIRNAME="$(tar -tf "${CACHEFILE}" | sed -e 's@/.*@@' | uniq)"
- if [ -d "${DIRNAME}" ]; then
- rm -rf ${DIRNAME}
- fi
- mkdir -p "${DIRNAME}"
+ # Remove existing if exists
+ rm -rf "${DIRNAME}"
echo -ne "${IBLU}Extracting ${YLW}${CACHEFILE}... "
- tar xf "${CACHEFILE}" -C "${DIRNAME}" >/dev/null 2>&1 & pid=$!
+ tar xf "${CACHEFILE}" > /dev/null 2>&1 & pid=$!
spinner "$pid"
retval=$?
if [ "$retval" -ne 0 ]; then
@@ -25,31 +26,26 @@ else
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
+ pushd "${DIRNAME}" > /dev/null || return 1
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=$!
+ mkdir -p "${LFS}/sources/log/chapter${CHAPTER}/"
+ source "${LFS}/sources/chapter${CHAPTER}/${PACKAGE}.sh" 2>&1 > "${LFS}/sources/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
+ popd > /dev/null || return 1
return $retval
else
echo -e "\n${GRN}Done Compiling ${YLW}${PACKAGE}${RST}"
- touch ${LFS}/sources/chapter${CHAPTER}/${PACKAGE}
- rm -rf ${LFS}/sources/${DIRNAME}
+ touch "${LFS}"/sources/chapter"${CHAPTER}"/"${PACKAGE}"
+ rm -rf "${LFS}"/sources/"${DIRNAME}"
fi
- popd > /dev/null
+ popd > /dev/null || return 1
done
fi