X-Git-Url: https://git.distorted.org.uk/~mdw/xfonts-traditional/blobdiff_plain/be65f15aacb3b55f504a18f7eecac9356d71e2ce..HEAD:/checkfiles diff --git a/checkfiles b/checkfiles index c3d325b..9c8f36a 100755 --- a/checkfiles +++ b/checkfiles @@ -2,55 +2,71 @@ # run from the prerm and postinst set -e -install=$1 +script=$1 +mode=$2 -check_file () { - dckey=$1; regexp=$2; file=$3 - - if ! test -f $file; then return; fi - - if $install; then - if test -e $file.not-trad; then return; fi - before=misc - after=trad - newfile=$file.trad - oldfile=$file.not-trad - else - if ! test -e $file.not-trad; then return; fi - before=trad - after=misc - newfile=$file.undo-trad - oldfile=$file.trad - fi +. /usr/share/debconf/confmodule +gen_file_overwrite () { + before=$1; after=$2; infile=$3; outfile=$4; backupmode=$5; backup=$6 perl -pe ' s/^('"$regexp"'\s+)\-'$before'\-(fixed-medium-r-semicondensed)/$1-'$after'-$2/ - ' <$file >$file - if cmp -s $file $newfile; then - rm $newfile + ' <$infile >$outfile.tmp + if cmp -s $outfile.tmp $outfile; then + rm $outfile.tmp return fi - - db_get $dckey - if [ $RET != true ]; then return; fi - - if $install; then - db_get $dckey-done || true - if [ $RET = true ]; then return; fi - - echo "Updating $file to use traditional fixed..." - else - echo "Restoring $file with nontraditional fixed..." - fi - rm -f $oldfile - ln $file $oldfile - mv -f $newfile $file + echo " Updating $file ($before=>$after)..." + case $backupmode in + once) + if ! test -e $backup; then + ln $outfile $backup + fi + ;; + never) + ;; + esac + mv -f $outfile.tmp $outfile case "$file" in *.alias) update-fonts-alias misc ;; esac +} + +check_file () { + dckey=$1; regexp=$2; file=$3 - db_set $dckey-done $install + if ! test -f $file; then return; fi + + needundo=true + + case "$script.$mode" in + postinst.*) + db_get xfonts-traditional/$dckey ||: + if [ $RET = true ]; then + gen_file_overwrite misc trad \ + $file $file once $file.backup.not-trad + needundo=false + else + gen_file_overwrite misc trad \ + $file $file.trad never + fi + ;; + prerm.upgrade*) + needundo=false + ;; + prerm.remove*) + ;; + *) + echo >&2 "huh $script.mode ?" + exit 1 + ;; + esac + if $needundo && test -f $file.backup.not-trad; then + gen_file_overwrite trad misc \ + $file $file $file.backup.trad + mv -f $file.backup.not-trad $file.old.not-trad + fi # only ever do this once, unless we've actually undone it since } @@ -62,3 +78,4 @@ check_file reconfigure-xterm '\*VT100\.utf8Fonts\.font\:' \ check_file remap-fixed 'fixed' \ /etc/X11/fonts/misc/xfonts-base.alias +true