daleken/
daleken/data/notes/
daleken/data/player/
daleken/data/system/poses/
daleken/doc/Homepage/images/
daleken/log/
#!/usr/bin/perl -w
# Program to update system/SYSINFO.TXT
# Written by Martin Thomson for Daleken 1.12.

$file = '../data/SYSINFO.TXT';
$bak = '~';

print STDOUT "Checking configuration file: $file\n";
print STDOUT "Checking for the existence of ispell/aspell and fortune\n";
print STDOUT "Ensure your PATH variable is correctly set.\n";
print STDOUT "---\n";

rename( $file, $file . $bak );
open (SYSINFO, "<$file$bak")
    or die "Can't open SYSINFO input file!";
open (OUTPUT, ">$file")
    or die "Can't open SYSINFO output file!";
select (OUTPUT);

while(<SYSINFO>) {
    # Strip comments and save them for later.
    if( /(\s*#.*)$/ ) {
	$comment = "$1";
    } else {
	$comment = "";
    };
    s/(\s*#.*)$//g;
    
  SWITCH: {
      /^Platform/ && do {
	  local $machine = "\"".`uname -s`."-".`uname -m`."\";";
	  $machine =~ s/\n//g;
	  s/^(Platform\s+)\".+\";$/$1.$machine/e;
	  last SWITCH;
      };
      /^Flags/ && do {
          local $flags = "(verbose reboot";
          if( system( "aspell --version >/dev/null 2>&1" ) == 0 ) {
	      print STDOUT "Found aspell.\n";
	      $flags .= " ispell";
	  } elsif( system( "ispell -v >/dev/null 2>&1" ) == 0 ) {
	      print STDOUT "Found ispell.\n";
	      $flags .= " ispell";
	  };
	  if( system( "fortune -s > /dev/null 2>&1" ) == 0 ) {
	      print STDOUT "Found fortune.\n";
	      $flags .= " fortunes";
	  };
	  $flags .= ");";
    	  s/^(Flags\s+)\(.+\);$/$1.$flags/e;
      };
  };
    # Strip end of lines from $_ then print the result, with appended comment
    chop;	# strip ending "\n"
    print ($_,$comment,"\n");
};
close (SYSINFO);
close (OUTPUT);
select (STDOUT);
unlink($file . $bak);
exit;