source: live-build/trunk/fuentes/functions/packages.sh @ 900

Last change on this file since 900 was 900, checked in by kbut, 4 years ago

add original source

  • Property svn:executable set to *
File size: 2.2 KB
Line 
1#!/bin/sh
2
3## live-build(7) - System Build Scripts
4## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
5##
6## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
7## This is free software, and you are welcome to redistribute it
8## under certain conditions; see COPYING for details.
9
10
11Check_package ()
12{
13        FILE="${1}"
14        PACKAGE="${2}"
15
16        Check_installed "${FILE}" "${PACKAGE}"
17
18        case "${INSTALL_STATUS}" in
19                1)
20                        _LB_PACKAGES="${_LB_PACKAGES} ${PACKAGE}"
21                        ;;
22
23                2)
24                        Echo_error "You need to install %s on your host system." "${PACKAGE}"
25                        exit 1
26                        ;;
27        esac
28}
29
30Install_package ()
31{
32        if [ -n "${_LB_PACKAGES}" ] && [ "${LB_BUILD_WITH_CHROOT}" != "false" ]
33        then
34                case "${LB_APT}" in
35                        apt|apt-get)
36                                Chroot chroot "apt-get install -o APT::Install-Recommends=false ${APT_OPTIONS} ${_LB_PACKAGES}"
37                                ;;
38
39                        aptitude)
40                                Chroot chroot "aptitude install --without-recommends ${APTITUDE_OPTIONS} ${_LB_PACKAGES}"
41                                ;;
42                esac
43        fi
44}
45
46Remove_package ()
47{
48        if [ -n "${_LB_PACKAGES}" ] && [ "${LB_BUILD_WITH_CHROOT}" != "false" ]
49        then
50                case "${LB_APT}" in
51                        apt|apt-get)
52                                Chroot chroot "apt-get remove --purge ${APT_OPTIONS} ${_LB_PACKAGES}"
53                                ;;
54
55                        aptitude)
56                                Chroot chroot "aptitude purge ${APTITUDE_OPTIONS} ${_LB_PACKAGES}"
57                                ;;
58                esac
59        fi
60}
61
62# Check_installed
63# uses as return value global var INSTALL_STATUS
64# INSTALL_STATUS : 0 if package is installed
65#                  1 if package isn't installed and we're in an apt managed system
66#                  2 if package isn't installed and we aren't in an apt managed system
67Check_installed ()
68{
69        FILE="${1}"
70        PACKAGE="${2}"
71
72        case "${LB_BUILD_WITH_CHROOT}" in
73                true)
74                        if Chroot chroot "dpkg-query -s ${PACKAGE}" 2> /dev/null | grep -qs "Status: install"
75                        then
76                                INSTALL_STATUS=0
77                        else
78                                INSTALL_STATUS=1
79                        fi
80                        ;;
81                false)
82                        if which dpkg-query > /dev/null 2>&1
83                        then
84                                if Chroot chroot "dpkg-query -s ${PACKAGE}" 2> /dev/null | grep -qs "Status: install"
85                                then
86                                        INSTALL_STATUS=0
87                                else
88                                        INSTALL_STATUS=1
89                                fi
90                        else
91                                FILE="$(echo ${FILE} | sed -e 's|chroot||')"
92
93                                if [ ! -e "${FILE}" ]
94                                then
95                                        INSTALL_STATUS=2
96                                else
97                                        INSTALL_STATUS=0
98                                fi
99                        fi
100                        ;;
101        esac
102}
103
Note: See TracBrowser for help on using the repository browser.