view debian/postinst @ 4833:395844d9d5d6

fixes bug in alban's new input handling code that caused the terminal state to get trashed and not restored on exit. hopefully this change won't interfere with the functionality of the new code; as far as i can tell it seems to work fine.
author rfelker
date Sun, 24 Feb 2002 04:56:54 +0000
parents 0737156ad1f0
children 6746866a94c6
line wrap: on
line source

#!/usr/bin/perl -w

# mplayer postinst

require ConfHelper;

use Debconf::Client::ConfModule qw(:all);
use IO::Handle;
use Fcntl;
my $version = version(1.0);
my @savedolddata = ();
my $didupgrade = 0;

dealwithupgrades();

my $mcfg = new ConfHelper('mplayer', "/etc/mplayer.conf");
$mcfg->setconfarea("
#MPlayer config file generated by .deb package.
#ffactor	=	0.9
#fs	=	yes
");

###########################################################################

debug("Configuring video output driver...");

my $dcarea = <<"EOF";
# MPlayer video output driver, configured by mplayer.deb
EOF

  $dcarea .= "vo=" . scalar(get("mplayer/voutput"));
  $dcarea .= "\n";

$mcfg->setconfarea($dcarea);

if ($didupgrade) {
  $mcfg->setotherarea_DANGEROUS(@savedolddata);
}

#%###################################

exit unless (get("mplayer/configure") eq 'true');
exit unless (fget("mplayer/configure", "isdefault") eq 'false');

#%##################################
get("mplayer/cfgnote");



sub dealwithupgrades {
  open(OLDCONF, "</etc/mplayer.conf") || return 1;
  close OLDCONF;

  my $mconf = new ConfHelper("mplayer", "/etc/mplayer.conf");
  return 1 if ($mconf->hasconfarea());
  undef $mconf;

  if ((get('mplayer/replace-existing-files') eq 'true') &&
      (fget('mplayer/replace-existing-files', 'isdefault') eq 'false')) {
    print STDERR "Upgrading...\n";
#?    saveolddata("/etc/network/interfaces", "pppconf");
    $didupgrade = 1;
    for my $file ("/etc/mplayer.conf"
    #, "/etc/mplayer/fonts/sth
    ) {
      debug("Deleting $file");
      unlink $file;
    }
  } else {
    print STDERR "Upgrade refused, exiting.\n";
    exit 0;
  }
}

# Gets any debconf area for other packages and saves it off.

sub saveolddata {
  my ($file, $package) = @_;
  my $conf = new ConfHelper($package, $file);
  push(@savedolddata, $conf->{startline} . "\n");
  push(@savedolddata, $conf->getconfarea());
  push(@savedolddata, $conf->{endline} . "\n");
}
		  
sub debug {
  print STDERR @_, "\n";
}