File warewulf-provision.bin-file.patch of Package warewulf-provision-gnu12-openmpi4
--- a/cgi-bin/file.pl 2018-07-11 11:16:30.000000000 -0700
+++ b/cgi-bin/file.pl 2018-07-11 11:16:54.000000000 -0700
@@ -133,39 +133,41 @@
close CACHE;
}
- # Search for all matching variable entries.
- foreach my $wwstring ($read_buffer =~ m/\%\{[^\}]+\}(?:\[\d+\])?/g) {
- # Check for format, and seperate into a seperate wwvar string
- if ($wwstring =~ /^\%\{(.+?)\}(\[(\d+)\])?$/) {
- my $wwvar = $1;
- my $wwarrayindex = $3;
- # Set the current object that we are looking at. This is
- # important as we iterate through multiple levels.
- my $curObj = $node;
- my @keys = split(/::/, $wwvar);
- while(my $key = shift(@keys)) {
- my $val = $curObj->get($key);
- if (ref($val) eq "Warewulf::ObjectSet") {
- my $find = shift(@keys);
- my $o = $val->find("name", $find);
- if ($o) {
- $curObj = $o;
+ if ( $fileObj->format ne "binary" ) {
+ # Search for all matching variable entries.
+ foreach my $wwstring ($read_buffer =~ m/\%\{[^\}]+\}(?:\[\d+\])?/g) {
+ # Check for format, and seperate into a seperate wwvar string
+ if ($wwstring =~ /^\%\{(.+?)\}(\[(\d+)\])?$/) {
+ my $wwvar = $1;
+ my $wwarrayindex = $3;
+ # Set the current object that we are looking at. This is
+ # important as we iterate through multiple levels.
+ my $curObj = $node;
+ my @keys = split(/::/, $wwvar);
+ while(my $key = shift(@keys)) {
+ my $val = $curObj->get($key);
+ if (ref($val) eq "Warewulf::ObjectSet") {
+ my $find = shift(@keys);
+ my $o = $val->find("name", $find);
+ if ($o) {
+ $curObj = $o;
+ } else {
+ &dprint("Could not find object: $find\n");
+ }
+
+ } elsif (ref($val) eq "ARRAY") {
+ my $v;
+ if ($wwarrayindex) {
+ $v = $val->[$wwarrayindex];
+ } else {
+ $v = $val->[0];
+ }
+ $read_buffer =~ s/\Q$wwstring\E/$v/g;
+ } elsif ($val) {
+ $read_buffer =~ s/\Q$wwstring\E/$val/g;
} else {
- &dprint("Could not find object: $find\n");
+ $read_buffer =~ s/\Q$wwstring\E//g;
}
-
- } elsif (ref($val) eq "ARRAY") {
- my $v;
- if ($wwarrayindex) {
- $v = $val->[$wwarrayindex];
- } else {
- $v = $val->[0];
- }
- $read_buffer =~ s/\Q$wwstring\E/$v/g;
- } elsif ($val) {
- $read_buffer =~ s/\Q$wwstring\E/$val/g;
- } else {
- $read_buffer =~ s/\Q$wwstring\E//g;
}
}
}