#!/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/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, "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/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"; }