changeset 1398:10e236ceac5e

update to perl debconf. fixed problem with configure.
author eyck
date Sat, 28 Jul 2001 07:54:52 +0000
parents 225b8fb7653f
children 79e39ecd2d37
files debian/config debian/postinst debian/templates
diffstat 3 files changed, 218 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/config	Sat Jul 28 07:54:52 2001 +0000
@@ -0,0 +1,98 @@
+#!/usr/bin/perl -w
+
+# Script to configure mplayer 
+# based on etherconf by John Goerzen <jgoerzen@progenylinux.com>
+
+use Debian::DebConf::Client::ConfModule qw(:all);
+
+my $version = version(2.0);
+title('MPlayer Configuration');
+my $PRIORITY = 'high';
+#TODO: 'medium'
+my $next = 'mainmenu';
+my $isediting = 0;
+
+my @nextargs = ();
+
+checkupgrade();			# Find out if we have to upgrade.
+mainloop(letsgo());
+
+sub checkupgrade {
+  open(MCFG, "</etc/mplayer.conf") || return 1;
+  my $line = <MCFG>;
+  return 1 if ($line =~ /mplayer DEBCONF AREA/);
+  exit(0) if (input($PRIORITY, 'mplayer/replace-existing-files') eq "question skipped");
+  go();
+  if (get('mplayer/replace-existing-files') eq 'false') {
+    input($PRIORITY, 'mplayer/replace-existing-files-bail');
+    go();
+    exit();
+  }
+  close MCFG;
+}
+
+sub mainloop {
+  $next = shift @_;
+  do {
+    my @retval = &$next(@nextargs);
+    #  if ($retval[0] eq 'BACK') {
+    #    $retval[0] = $backups{$next};
+    #  }
+    ($next, @nextargs) = @retval;
+  } while ($next ne 'Exit');
+}
+
+sub letsgo {
+#useless!
+  return "configure";
+}
+
+sub configure {
+  subst("mplayer/voutput", "vochoices", "xv, xmga, mga, x11, gl, sdl");
+  # db_subst mplayer/output vo xc,xmga,mga,x11,gl,sdl
+  exit(0) if (input($PRIORITY, "mplayer/voutput") eq "question skipped");
+  go();
+  exit 0 unless (get("mplayer/voutput") eq 'true');
+  #return 'audioout';
+  return 'mainmenu';
+}
+
+sub mainmenu {
+  go();				# To catch spare things from before
+  my @choices = (
+    'Video Output: ' . scalar(get("mplayer/voutput")));
+    #,
+  $choices = join(', ', @choices);
+  $isediting = 1;
+  
+  subst('mplayer/mainmenu', 'choices', $choices);
+  input($PRIORITY, 'mplayer/mainmenu');
+  go();
+  
+  my $selection = get('mplayer/mainmenu');
+  if ($selection =~ /^Exit/) {
+    return 'Exit';
+  }
+
+  # Set to redisplay.
+  fset('mplayer/mainmenu', 'isdefault', 'true');
+
+  $_ = $selection;
+
+  return 'configure' if /^Video/;
+#  return 'aoutput' if /^Aoutput/;
+  return 'Exit';
+}
+      
+sub editreturn {
+  my @args = @_;
+  return 'mainmenu' if $isediting;
+  return @args;
+}
+
+sub editfix {
+  my $template = shift @_;
+  if ($isediting) {
+    fset($template, 'isdefault', 'true');
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/postinst	Sat Jul 28 07:54:52 2001 +0000
@@ -0,0 +1,88 @@
+#!/usr/bin/perl -w
+
+# mplayer postinst
+
+require ConfHelper;
+
+use Debian::DebConf::Client::ConfModule qw(:all);
+use IO::Handle;
+use Fcntl;
+my $version = version(1.0);
+my @savedolddata = ();
+my $didupgrade = 0;
+
+dealwithupgrades();
+
+# We add lo0 right now, useful in case we exit anyway.
+
+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 config file, 
+
+# MPlayer video output driver, configured by mplayer.deb
+EOF
+
+  $dcarea .= "vo=" . scalar(get("mplayer/voutput"));
+$dcarea .= "\n";
+
+$mcfg->setconfarea($dcarea);
+
+if ($didupgrade) {
+  $interfaces->setotherarea_DANGEROUS(@savedolddata);
+}
+
+#%###################################
+
+exit unless (get("mplayer/configure") eq 'true');
+exit unless (fget("mplayer/configure", "isdefault") eq 'false');
+
+
+
+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";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/templates	Sat Jul 28 07:54:52 2001 +0000
@@ -0,0 +1,32 @@
+Template: mplayer/replace-existing-files
+Type: boolean
+Default: true
+Description: Upgrade existing system?
+ It looks like you've configured your mplayer already.
+ If you'd like to configure it with this program, I'll have
+ to delete the old configuration.  Do you want to continue
+ configuration with this program?  If you say "yes", I'll go ahead
+ and delete your old configuration and you can create it anew with
+ this program. 
+
+Template: mplayer/replace-existing-files-bail
+Type: note
+Description: Files not replaced
+ I'm going to exit now since you don't want me to replace your
+ existing files.  If you change your mind later, you can run
+ dpkg-reconfigure mplayer.
+
+Template: mplayer/mainmenu
+Type: select
+Choices: ${choices}, Exit
+Description: MPlayer Main Menu
+ From this menu, you can modify any of the settings for your device.
+ Simply select the item you'd like to change to modify it.
+ When you are done, select Exit.
+
+Template: mplayer/voutput
+Type: select
+Choices: ${vochoices}, x11
+Description: MPlayer Video Output
+ Yada yada..
+