summaryrefslogtreecommitdiff
path: root/functions/packages.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2007-09-23 10:05:17 +0200
committerDaniel Baumann <daniel@debian.org>2011-03-09 18:22:26 +0100
commit0d0de885e32ff67d57bb7def451b62d75b8920ab (patch)
treecd4a159a86207401dbd5990bc0fa3c28825ab6f8 /functions/packages.sh
parentc68c0a270832ca340429878ce6a0ab606d435b06 (diff)
downloadlive-build-0d0de885e32ff67d57bb7def451b62d75b8920ab.zip
live-build-0d0de885e32ff67d57bb7def451b62d75b8920ab.tar.gz
Adding live-helper 1.0~a22-1.
Diffstat (limited to 'functions/packages.sh')
-rwxr-xr-xfunctions/packages.sh83
1 files changed, 53 insertions, 30 deletions
diff --git a/functions/packages.sh b/functions/packages.sh
index 049c89b..9e10b1d 100755
--- a/functions/packages.sh
+++ b/functions/packages.sh
@@ -14,43 +14,23 @@ Check_package ()
FILE="${1}"
PACKAGE="${2}"
- case "${LIVE_CHROOT_BUILD}" in
- enabled)
- for ITEM in ${PACKAGE}
- do
- if ! `Chroot "dpkg-query -s ${ITEM}"`
- then
- PACKAGES="${PACKAGES} ${ITEM}"
- fi
- done
- ;;
+ Check_installed "${FILE}" "${PACKAGE}"
- disabled)
- if `which dpkg-query`
- then
- for ITEM in ${PACKAGE}
- do
- if ! `dpkg-query -s ${ITEM}`
- then
- PACKAGES="${PACKAGES} ${ITEM}"
- fi
- done
- else
- FILE="`echo ${FILE} | sed -e 's/chroot//'`"
+ case "${INSTALL_STATUS}" in
+ 1)
+ PACKAGES="${PACKAGES} ${PACKAGE}"
+ ;;
- if [ ! -f "${FILE}" ] && [ ! -d "${FILE}" ]
- then
- Echo_error "You need to install ${PACKAGE} on your host system."
- exit 1
- fi
- fi
+ 2)
+ Echo_error "You need to install ${PACKAGE} on your host system."
+ exit 1
;;
esac
}
Install_package ()
{
- if [ -n "${PACKAGES}" ] && [ "${LIVE_CHROOT_BUILD}" != "disabled" ]
+ if [ -n "${PACKAGES}" ] && [ "${LH_CHROOT_BUILD}" != "disabled" ]
then
case "${LH_APT}" in
apt|apt-get)
@@ -66,7 +46,7 @@ Install_package ()
Remove_package ()
{
- if [ -n "${PACKAGES}" ] && [ "${LIVE_CHROOT_BUILD}" != "disabled" ]
+ if [ -n "${PACKAGES}" ] && [ "${LH_CHROOT_BUILD}" != "disabled" ]
then
case "${LH_APT}" in
apt|apt-get)
@@ -79,3 +59,46 @@ Remove_package ()
esac
fi
}
+
+# Check_installed
+# uses as return value global var INSTALL_STATUS
+# INSTALL_STATUS : 0 if package is installed
+# 1 if package isn't installed and we're in an apt managed system
+# 2 if package isn't installed and we aren't in an apt managed system
+Check_installed ()
+{
+ FILE="${1}"
+ PACKAGE="${2}"
+
+ case "${LH_CHROOT_BUILD}" in
+ enabled)
+ if Chroot "dpkg-query -s ${PACKAGE}" 2> /dev/null | grep -qs "Status: install"
+ then
+ INSTALL_STATUS=0
+ else
+ INSTALL_STATUS=1
+ fi
+ ;;
+ disabled)
+ if which dpkg-query > /dev/null 2>&1
+ then
+ if Chroot "dpkg-query -s ${PACKAGE}" 2> /dev/null | grep -qs "Status: install"
+ then
+ INSTALL_STATUS=0
+ else
+ INSTALL_STATUS=1
+ fi
+ else
+ FILE="`echo ${FILE} | sed -e 's/chroot//'`"
+
+ if [ ! -e "${FILE}" ]
+ then
+ INSTALL_STATUS=2
+ else
+ INSTALL_STATUS=0
+ fi
+ fi
+ ;;
+ esac
+}
+