fi
}
-read -r line
-case "$line" in
- 'VERSION 2')
- while read -r line && [ -n "$line" ]; do :; done
- while read -r package oldver cmp newver action; do
- case "$action" in
- '**CONFIGURE**' | '**REMOVE**')
- package "$package" "$oldver" "$cmp" "$newver"
- ;;
- '**ERROR**')
- echo "ERROR on $package $newver"
- ;;
- esac
- done
- ;;
- 'VERSION *')
- echo "$0: unrecognized version: $line"
- ;;
- '')
- ;;
- *)
- oldpkgs=$(mktemp -t "apt-zephyr-old.XXXXXX") || exit $?
- newpkgs=$(mktemp -t "apt-zephyr-new.XXXXXX") || exit $?
- (echo "$line"; cat) | xargs -r -d '\n' dpkg-deb -W | sort -o "$newpkgs"
- cut -f 1 "$newpkgs" | xargs -r -d '\n' dpkg-query -W | \
- sort -o "$oldpkgs"
- join -t ' ' -j 1 -e '-' "$oldpkgs" "$newpkgs" | \
- while IFS=' ' read -r package oldver newver; do
- if dpkg --compare-versions "$oldver" lt "$newver"; then
- package "$package" "$oldver" '<' "$newver"
- elif dpkg --compare-versions "$oldver" eq "$newver"; then
- package "$package" "$oldver" '=' "$newver"
- else
- package "$package" "$oldver" '>' "$newver"
- fi
- done
- rm -f "$oldpkgs" "$newpkgs"
- ;;
-esac | send_zephyr
+parse_v1 ()
+{
+ oldpkgs=$(mktemp -t "apt-zephyr-old.XXXXXX") || exit $?
+ newpkgs=$(mktemp -t "apt-zephyr-new.XXXXXX") || exit $?
+ xargs -r -d '\n' dpkg-deb -W | sort -o "$newpkgs"
+ cut -f 1 "$newpkgs" | xargs -r -d '\n' dpkg-query -W | \
+ sort -o "$oldpkgs"
+ join -t ' ' -j 1 -e '-' "$oldpkgs" "$newpkgs" | \
+ while IFS=' ' read -r package oldver newver; do
+ if dpkg --compare-versions "$oldver" lt "$newver"; then
+ package "$package" "$oldver" '<' "$newver"
+ elif dpkg --compare-versions "$oldver" eq "$newver"; then
+ package "$package" "$oldver" '=' "$newver"
+ else
+ package "$package" "$oldver" '>' "$newver"
+ fi
+ done
+ rm -f "$oldpkgs" "$newpkgs"
+}
+
+parse_v2 ()
+{
+ while read -r line && [ -n "$line" ]; do :; done
+ while read -r package oldver cmp newver action; do
+ case "$action" in
+ '**CONFIGURE**' | '**REMOVE**')
+ package "$package" "$oldver" "$cmp" "$newver"
+ ;;
+ '**ERROR**')
+ echo "ERROR on $package $newver"
+ ;;
+ esac
+ done
+}
+
+pre_install_pkgs ()
+{
+ read -r line
+ case "$line" in
+ 'VERSION 2')
+ parse_v2 | send_zephyr
+ ;;
+ 'VERSION *')
+ echo "$0: unrecognized version: $line" | send-zephyr
+ ;;
+ '')
+ ;;
+ *)
+ (echo "$line"; cat) | parse_v1 | send_zephyr
+ ;;
+ esac
+}
+
+post_invoke ()
+{
+ echo 'Done.' | send_zephyr
+}
+
+if [ "$1" = "--pre-install-pkgs" ]; then
+ pre_install_pkgs
+elif [ "$1" = "--post-invoke" ]; then
+ post_invoke
+else
+ echo "usage: $0 {--pre-install-pkgs | --post-invoke}" >&2
+ echo "(Hint: you probably need to update /etc/apt/apt.conf.d/90zephyr.)" >&2
+fi
+
+exit 0