File: libzypp-config.postinst

package info (click to toggle)
libzypp 17.36.7-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 26,380 kB
  • sloc: cpp: 132,576; xml: 2,587; sh: 486; makefile: 26; python: 23
file content (82 lines) | stat: -rwxr-xr-x 1,372 bytes parent folder | download | duplicates (5)
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
#!/bin/sh

set -e

is_old() {
	RES=1
	# if no such file, exit with false (1 in bash)
	if [ -f ${LOCKSFILE} ]; then
		TEMP_FILE=`mktemp`
		cat ${LOCKSFILE} | sed '/^\#.*/ d;/.*:.*/d;/^[^[a-zA-Z\*?.0-9]*$/d' > ${TEMP_FILE}
		if [ -s ${TEMP_FILE} ]; then
			RES=0
		else
			RES=1
		fi
	fi
	rm -f ${TEMP_FILE}
	return ${RES}
}

append_new_lock(){
	case "$#" in
		1 )
			echo "
solvable_name: $1
match_type: glob
" >> ${LOCKSFILE}
		;;
		2 ) #TODO version
			echo "
solvable_name: $1
match_type: glob
version: $2
" >> ${LOCKSFILE}
		;;
		3 ) #TODO version
			echo "
solvable_name: $1
match_type: glob
version: $2 $3
" >> ${LOCKSFILE}
		;;
	esac
}

die() {
	echo $1
	exit 1
}

# We exit unless the package is being configured
case "$1" in
	abort*upgrade)
		exit 0
		;;
	abort*remove)
		exit 0
		;;
	abort*deconfigure)
		exit 0
		;;
	configure)
		if [ -f /var/cache/zypp/zypp.db ]; then rm /var/cache/zypp/zypp.db; fi
			# convert old lock file to new
			# TODO make this a separate file?
			# TODO run the sript only when updating form pre-11.0 libzypp versions
			LOCKSFILE=/etc/zypp/locks
			OLDLOCKSFILE=/etc/zypp/locks.old

			if is_old ${LOCKSFILE}; then
				mv -f ${LOCKSFILE} ${OLDLOCKSFILE} || die "cannot backup old locks"
				cat ${OLDLOCKSFILE} | sed "/^\#.*/d"| while read line; do
					append_new_lock $line
				done
			fi
		;;
	*)
		exit 0;
		;;
esac

#DEBHELPER#