Replace "set-sysconf" for a more descriptive "rpi-set-sysconf"

This commit is contained in:
Gunnar Wolf
2019-07-19 12:23:19 -03:00
parent 2075ce2a4a
commit 959f5367d0
2 changed files with 0 additions and 0 deletions

49
rpi-set-sysconf Normal file
View File

@ -0,0 +1,49 @@
#!/usr/bin/perl
use strict;
use warnings;
use IO::File;
use IO::Pipe;
use feature 'switch';
my ($filename, $fh, %conf);
$filename = '/boot/firmware/sysconf.txt';
exit 0 unless -f $filename;
logger('info', "Applying the system configuration settings in $filename");
$fh = IO::File->new($filename, 'r');
while (my $line = $fh->getline) {
my ($key, $value);
# Allow for comments, and properly ignore them
$line =~ s/#.+//;
if ( ($key, $value) = ($line =~ m/^\s*([^=]+)\s*=\s*(.*)\s*$/)) {
$key = lc($key);
if (exists($conf{$key})) {
logger('warn',
"Repeated configuration key: $key. " .
"Overwriting with new value ($value)");
}
$conf{$key} = $value;
}
}
if (my $pass = delete($conf{root_pw})) {
my $pipe;
open($pipe, '|-', '/usr/sbin/chpasswd') or die $!;
print $pipe "root:$pass";
close($pipe);
}
if (scalar keys %conf) {
logger('warn', 'Unprocessed keys left in $filename: ' .
join(', ', sort keys %conf));
}
exit 0;
sub logger {
my ($prio, $msg) = @_;
system('/bin/logger', '-p', "daemon.$prio",
'-t', 'set-sysconf', $msg);
}