summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/printer/main.pm54
-rw-r--r--perl-install/printer/office.pm31
2 files changed, 34 insertions, 51 deletions
diff --git a/perl-install/printer/main.pm b/perl-install/printer/main.pm
index d66b41385..757cf35f9 100644
--- a/perl-install/printer/main.pm
+++ b/perl-install/printer/main.pm
@@ -1542,24 +1542,19 @@ sub config_sane {
sub config_photocard {
# Add definitions for the drives p:. q:, r:, and s: to /etc/mtools.conf
- my $mtoolsconf = join("", cat_("$::prefix/etc/mtools.conf"));
- return if $mtoolsconf =~ m/^\s*drive\s+p:/m;
- my $mtoolsconf_append = "
+ cat_("$::prefix/etc/mtools.conf") !~ m/^\s*drive\s+p:/m or return;
+
+ append_to_file("$::prefix/etc/mtools.conf", <<'EOF');
# Drive definitions added for the photo card readers in HP multi-function
# devices driven by HPOJ
-drive p: file=\":0\" remote
-drive q: file=\":1\" remote
-drive r: file=\":2\" remote
-drive s: file=\":3\" remote
+drive p: file=":0" remote
+drive q: file=":1" remote
+drive r: file=":2" remote
+drive s: file=":3" remote
# This turns off some file system integrity checks of mtools, it is needed
# for some photo cards.
mtools_skip_check=1
-";
- local *F;
- open F, ">> $::prefix/etc/mtools.conf" or
- die "can't write mtools config in /etc/mtools.conf: $!";
- print F $mtoolsconf_append;
- close F;
+EOF
# Generate a config file for the graphical mtools frontend MToolsFM or
# modify the existing one
@@ -1574,22 +1569,23 @@ mtools_skip_check=1
$mtoolsfmconf =~ s/^\s*DRIVES\s*=\s*\"[A-Za-z ]*\"/DRIVES=\"$alloweddrives\"/m;
$mtoolsfmconf =~ s/^\s*LEFTDRIVE\s*=\s*\"[^\"]*\"/LEFTDRIVE=\"p\"/m;
} else {
- $mtoolsfmconf = "\# MToolsFM config file. comments start with a hash sign.
-\#
-\# This variable sets the allowed driveletters (all lowercase). Example:
-\# DRIVES=\"ab\"
-DRIVES=\"apqrs\"
-\#
-\# This variable sets the driveletter upon startup in the left window.
-\# An empty string or space is for the hardisk. Example:
-\# LEFTDRIVE=\"a\"
-LEFTDRIVE=\"p\"
-\#
-\# This variable sets the driveletter upon startup in the right window.
-\# An empty string or space is for the hardisk. Example:
-\# RIGHTDRIVE=\"a\"
-RIGHTDRIVE=\" \"
-";
+ $mtoolsfmconf = <<'EOF';
+# MToolsFM config file. comments start with a hash sign.
+#
+# This variable sets the allowed driveletters (all lowercase). Example:
+# DRIVES="ab"
+DRIVES="apqrs"
+#
+# This variable sets the driveletter upon startup in the left window.
+# An empty string or space is for the hardisk. Example:
+# LEFTDRIVE="a"
+LEFTDRIVE="p"
+#
+# This variable sets the driveletter upon startup in the right window.
+# An empty string or space is for the hardisk. Example:
+# RIGHTDRIVE="a"
+RIGHTDRIVE=" "
+EOF
}
output("$::prefix/etc/mtoolsfm.conf", $mtoolsfmconf);
}
diff --git a/perl-install/printer/office.pm b/perl-install/printer/office.pm
index 459ae4d8e..48bfe52f5 100644
--- a/perl-install/printer/office.pm
+++ b/perl-install/printer/office.pm
@@ -45,7 +45,7 @@ sub configureoffice {
$configfilename =~ m!$suites{$suite}{file_name}!;
my $configprefix = $1;
# Load Star Office printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
+ my $configfilecontent = cat_("$::prefix$configfilename");
# Update remote CUPS queues
if (0 && $printer->{SPOOLER} eq "cups" &&
(-x "$::prefix/usr/bin/curl" || -x "$::prefix/usr/bin/wget")) {
@@ -100,7 +100,7 @@ sub configureoffice {
$configfilecontent = removeentry(@parameters, $configfilecontent);
$configfilecontent = addentry($parameters[0], $parameters[1] . $suites{$suite}{perl} . $spoolers{$printer->{SPOOLER}{print_command}}, $configfilecontent);
# Write back Star Office configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
+ return eval { output("$::prefix$configfilename", $configfilecontent) };
}
sub add_cups_remote_to_office {
@@ -111,7 +111,7 @@ sub add_cups_remote_to_office {
$configfilename =~ m!$suites{$suite}{file_name}!;
my $configprefix = $1;
# Load Star Office printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
+ my $configfilecontent = cat_("$::prefix$configfilename");
# Update remote CUPS queues
if ($printer->{SPOOLER} eq "cups" &&
(-x "$::prefix/usr/bin/curl" || -x "$::prefix/usr/bin/wget")) {
@@ -149,7 +149,7 @@ sub add_cups_remote_to_office {
}
}
# Write back Star Office configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
+ return eval { output("$::prefix$configfilename", $configfilecontent) };
}
sub remove_printer_from_office {
@@ -160,13 +160,13 @@ sub remove_printer_from_office {
$configfilename =~ m!$suites{$suite}{file_name}!;
my $configprefix = $1;
# Load Star Office printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
+ my $configfilecontent = cat_("$::prefix$configfilename");
# Remove the printer entry
$configfilecontent =
removestarofficeprinterentry($printer, $queue, $configprefix,
$configfilecontent);
# Write back Star Office configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
+ return eval { output("$::prefix$configfilename", $configfilecontent) };
}
sub remove_local_printers_from_office {
@@ -177,14 +177,14 @@ sub remove_local_printers_from_office {
$configfilename =~ m!$suites{$suite}{file_name}!;
my $configprefix = $1;
# Load Star Office printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
+ my $configfilecontent = cat_("$::prefix$configfilename");
# Remove the printer entries
foreach my $queue (keys(%{$printer->{configured}})) {
$configfilecontent =
removestarofficeprinterentry($printer, $queue, $configprefix, $configfilecontent);
}
# Write back Star Office configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
+ return eval { output("$::prefix$configfilename", $configfilecontent) };
}
@@ -361,21 +361,8 @@ sub find_config_file {
return "";
}
-sub readsofficeconfigfile {
- my ($file) = @_;
- local *F;
- open F, "< $::prefix$file" or return "";
- my $filecontent = join("", <F>);
- close F;
- return $filecontent;
-}
-
sub writesofficeconfigfile {
my ($file, $filecontent) = @_;
- local *F;
- open F, "> $::prefix$file" or return 0;
- print F $filecontent;
- close F;
- return 1;
+ eval { output("$::prefix$file", $filecontent) };
}