From 5238ad5a0c4a9e1c8cd036f5de4055e39bd71297 Mon Sep 17 00:00:00 2001 From: Manuel Traut Date: Fri, 29 Apr 2011 09:09:27 +0200 Subject: added debootstrap stuff Signed-off-by: Manuel Traut --- beagle/debian-rfs/usr/bin/debconf-set-selections | 148 +++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100755 beagle/debian-rfs/usr/bin/debconf-set-selections (limited to 'beagle/debian-rfs/usr/bin/debconf-set-selections') diff --git a/beagle/debian-rfs/usr/bin/debconf-set-selections b/beagle/debian-rfs/usr/bin/debconf-set-selections new file mode 100755 index 0000000..abf361c --- /dev/null +++ b/beagle/debian-rfs/usr/bin/debconf-set-selections @@ -0,0 +1,148 @@ +#!/usr/bin/perl +# This file was preprocessed, do not edit! + + +sub usage { + print STDERR <get($label); + if (! $template) { + $template=Debconf::Template->new($label, $owner, $type); + $template->description("Dummy template"); + $template->extended_description("This is a fake template used to pre-seed the debconf database. If you are seeing this, something is probably wrong."); + } + else { + $template->default($content); + } + $template->type($type); + + my $question=Debconf::Question->get($label); + if (! $question) { + error("Cannot find a question for $label"); + return; + } + $question->addowner($owner, $type); + $question->value($content); + if (! $unseen) { + $question->flag("seen", "true"); + } +} + +sub set_flag { + my ($owner, $label, $flag, $content) = @_; + + info "Setting $flag flag"; + + my $question=Debconf::Question->get($label); + if (! $question) { + error("Cannot find a question for $label"); + return; + } + $question->flag($flag, $content); +} + +my @knowntypes = qw(select boolean string multiselect note password text title); +my @knownflags = qw(seen); + +sub ok_format { + my ($owner, $label, $type, $content) = @_; + if (! defined $owner || ! defined $label || ! defined $content) { + error "parse error on line $.: '$_'"; + return; + } + elsif (! grep { $_ eq $type } @knowntypes, @knownflags) { + warning "Unknown type $type, skipping line $."; + return; + } + else { + return 1; + } +} + +sub mungeline ($) { + my $line=shift; + chomp $line; + $line=~s/\#.*$//; + $line=~s/\r$//; + return $line; +} + + +GetOptions( + "verbose|v" => \$debug, + "checkonly|c" => \$checkonly, + "unseen|u" => \$unseen, +) || usage(); + +Debconf::Db->load; + +$error = 0; + +while (<>) { + $_=mungeline($_); + while (/\\$/ && ! eof) { + s/\\$//; + $_.=mungeline(<>); + } + next if /^\s*$/; + my ($owner, $label, $type, $content) = /^\s*(\S+)\s+(\S+)\s+(\S+)(?:\s(.*))?/; + if (! defined $content) { + $content=''; + } + if (ok_format($owner, $label, $type, $content)) { + if (grep { $_ eq $type } @knownflags) { + info "Trying to set '$type' flag to '$content'"; + set_flag($owner, $label, $type, $content); + } + else { + info "Trying to set '$label' [$type] to '$content'"; + load_answer($owner, $label, $type, $content); + } + } +} + +if (! $checkonly) { + Debconf::Db->save; +} + +if ($error) { + exit 1; +} + -- cgit v1.2.3