File: preinst

package info (click to toggle)
flex 2.5.31-31sarge1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 8,048 kB
  • ctags: 1,393
  • sloc: ansic: 13,165; sh: 5,433; lex: 3,244; makefile: 1,369; yacc: 966; awk: 78; cpp: 23; sed: 16
file content (142 lines) | stat: -rw-r--r-- 4,377 bytes parent folder | download | duplicates (2)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#! /bin/sh
#                               -*- Mode: Sh -*- 
# preinst --- 
# Author           : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com ) 
# Created On       : Fri Nov 14 12:12:04 2003
# Created On Node  : glaurung.green-gryphon.com
# Last Modified By : Manoj Srivastava
# Last Modified On : Thu Dec  4 02:55:01 2003
# Last Machine Used: glaurung.green-gryphon.com
# Update Count     : 5
# Status           : Unknown, Use with caution!
# HISTORY          : 
# Description      : 
# 
# arch-tag: d6a3672d-acb3-4f6c-9984-bad17d8ce0aa
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# 


# Abort if any command returns an error value
set -e

package_name=flex

if [ -z "$package_name" ]; then
    print >&2 "Internal Error. Please report a bug."
    exit 1;
fi

# This script is called before this version of this package is installed.
# When this script is called, the package's files have not been unpacked
# yet.

# This package uses debconf to ask a question, so source the debconf
# confmodule as early as possible. However, it does not depend on debconf,
# so debconf may not be installed.
if [ -e /usr/share/debconf/confmodule ]; then
	. /usr/share/debconf/confmodule
	db_capb
fi

ask_upgrade () {
    if [ -e /usr/share/debconf/confmodule ]; then
	db_fget flex/upgrade/pre_2.5.5 seen
	if [ "$RET" = true ]; then
		  # The user saw and answered the question using debconf.
	    db_get flex/upgrade/pre_2.5.5
	    if [ "$RET" = "false" ]; then
		  	# Allow the same question to be displayed again on
			# another upgrade run.
		db_fset flex/upgrade/pre_2.5.5 seen false || true
		exit 1
	    fi
	else
		  # Debconf did not display the question to the user.
	    :
	fi
    else
	  # Debconf is not available so ask the upgrade question by hand. 
	echo "This version of Flex is a major upgrade from previous"
	echo "versions. There have been extensive changes. Flex scanners"
	echo "are now reenterant, you may have multiple scanners in"
	echo "the same program with differing sets of defaults, and"
	echo "they play nicer with modern C and C++ compilers. The Flip"
	echo "side is that Flex no longer conforms to the POSIX lex"
	echo "behaviour, and the scanners require conforming"
	echo "implementations when flex is used in ANSI C mode. The package"
	echo "flex-old provides the same behaviour as version 2.5.4a of Flex."
	echo ""
	echo "Please abort if you are not prepared for these changes in Flex."
	answer=""
	echo -n "Are you sure you wish to proceed?[y/N]: "
	read answer
	case $answer in
	    [Yy]*) nop= 
            ;;
         *) exit 1
	 ;;
	 esac
    fi
}


case "$1" in
  install)
    # About to install this package.
    :

    # Add a diversion.  This is one of the few things which may be done
    # before installing any files from the package.
    ##: dpkg-divert --package foo --add --rename \
    ##:             --divert /usr/bin/other.real /usr/bin/other

    # There are two sub-cases:
    if test "${2+set}" = set; then
      # The configuration files from version $2 of this package are
      # still on the system.
	if dpkg --compare-versions $2 lt 2.5.5; then
	    ask_upgrade
	fi


    else
      # There is no existing configuration; install from scratch.
	:

    fi ;;
  upgrade)
    # About to upgrade this package from version $2 TO THIS VERSION.
    # "prerm upgrade" has already been called for the old version of
    # this package.
	if dpkg --compare-versions $2 lt 2.5.5; then
	    ask_upgrade
	fi


    ;;
  abort-upgrade)
    # Back out of an attempt to upgrade this package FROM THIS VERSION to
    # version $2.  Undo the effects of "postrm upgrade $2".
    :

    ;;
  *) echo "$0: didn't understand being called with \`$1'" 1>&2
     exit 0;;
esac

exit 0