#!/usr/bin/perl
use strict;
use warnings;
use IO::File;
use IO::Pipe;
use Sys::Syslog qw(:standard);
use feature 'switch';

my ($filename, $fh, %conf);

$filename = '/boot/firmware/sysconf.txt';
exit 0 unless -f $filename;

openlog('sysconf', 'ndelay', 'LOG_DAEMON');
syslog('info', 'Applying the system configuration settings in /boot/firmware');
END { closelog(); }

$fh = IO::File->new($filename, 'r');
while (my $line = $fh->readline) {
    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})) {
	    syslog('warn', "Repeated configuration key: $key. Overwriting with new value ($value)");
	}
	$conf{$key} = $value;
    }
}

if (my $pass = $conf{root_pw}) {
    my $pipe = IO::Pipe->new();
    $pipe->writer('/bin/passwd root');
    print $pipe $pass;
    print $pipe $pass;
}


