Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /bin/ |
Upload File : |
#!/usr/bin/perl =head1 NAME gen-preseed -- output preseed based on installation debconf DB =head1 SYNOPSIS gen-preseed =head1 DESCRIPTION Output a preseed file based on the installation debconf DB. This requires /var/log/installer/cdebconf to exist. =cut use strict; use warnings; use Debconf::Db; use Debconf::Template; use Debconf::Question; # A bit of a hack.. my $di_path; if (-d "/var/log/installer") { $di_path="/var/log/installer/cdebconf"; } else { $di_path="/var/log/debian-installer/cdebconf"; } if (! -f "$di_path") { print("Unable to find debconf database: $di_path\n"); exit(1); } Debconf::Db->load(readonly => "true"); $Debconf::Db::config=Debconf::Db->makedriver( driver => "File", name => "di_questions", filename => "$di_path/questions.dat", readonly => "true", ); $Debconf::Db::templates=Debconf::Db->makedriver( driver => "File", name => "di_templates", filename => "$di_path/templates.dat", readonly => "true", ); my $defaultowner="d-i"; my @blacklist = ( # No partitioning preseeding at this point "partman-", # d-i state "clock-setup/system-time-changed", "debian-installer/main-menu", # Value depends on hardware "netcfg/choose_interface", # Value depends on install media "base-installer/kernel/image", "base-installer/kernel/override-image", "cdrom/codename", "cdrom-detect/cdrom_device", "hw-detect/select_modules", "preseed/file", ); my $qi = Debconf::Question->iterator; my @keys = (); while (my $q = $qi->iterate) { my ($name, $type, $value, $default) = ($q->name, $q->type, $q->value, $q->default); next if ($default eq $value); next if (! length $type || $type eq 'text' || $type eq 'title'); my $skip = 0; foreach (@blacklist) { if ($name =~ m/^$_/) { $skip = 1; } } next if ($skip eq 1); if ($q->owners) { foreach my $owner (split ", ", $q->owners) { push(@keys, "$owner\t$name\t$type\t$value\n"); } } else { push(@keys, "$defaultowner\t$name\t$type\t$value\n"); } } foreach(sort(@keys)) { print "$_"; } =head1 AUTHOR Written by: Stéphane Graber <stgraber@ubuntu.com> Based on debconf-get-selections by: Petter Reinholdtsen <pere@hungry.com> =cut