Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 3.17.175.191
Web Server : Apache/2.4.62 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /bin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /bin/debconf-set-selections
#!/usr/bin/perl
# This file was preprocessed, do not edit!


sub usage {
	print STDERR <<EOF;
Usage: debconf-set-selections [-vcu] [file]
  -v, --verbose     verbose output
  -c, --checkonly   only check the input file format
  -u, --unseen      do not set the 'seen' flag when preseeding values
EOF
	exit(1);
}


use warnings;
use strict;
use Debconf::Db;
use Debconf::Template;
use Getopt::Long;

use vars qw(%opts $filename $debug $error $checkonly $unseen);

sub info {
	my $msg = shift;
	print STDERR "info: $msg\n" if $debug;
}

sub warning {
	my $msg = shift;
	print STDERR "warning: $msg\n";
}

sub error {
	my $msg = shift;
	print STDERR "error: $msg\n";
	$error++
}

sub load_answer {
	my ($owner, $label, $type, $content) = @_;
	
	info "Loading answer for '$label'";

	my $template=Debconf::Template->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.");
	}
	$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/\r$//;
	return $line;
}


GetOptions(
	"verbose|v" => \$debug,
	"checkonly|c" => \$checkonly,
	"unseen|u" => \$unseen,
) || usage();

{
	local $ENV{DEBCONF_NOWARNINGS} = 'yes' if $checkonly;
	Debconf::Db->load;
}

$error = 0;

while (<>) {
	$_=mungeline($_);
	while (/\\$/ && ! eof) {
		s/\\$//;
		$_.=mungeline(<>);
	}
	next if /^\s*$/ || /^\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;
}


Anon7 - 2022
AnonSec Team