# of the file. Parameter values that are longer than 80 chars will
# also be split.
#
+# If --in-place is supplied as the first parameter of this script,
+# the files will be changed in place.
+# Otherwise the rewrapped files are printed to the standard output.
+$in_place = 0;
+
+if (@ARGV[0] eq "--in-place") {
+ $in_place = 1;
+ shift @ARGV;
+}
foreach my $file (@ARGV) {
&rewrap($file);
# Now each @lines represents a single command, we
# can process them
- foreach my $line (@lines) {
- print &rewrap_line ($line);
- }
+ @lines = map { &rewrap_line($_) } @lines;
+ if ($in_place) {
+ open FILE, ">", $file or die "cannot write $file: $!";
+ foreach my $line (@lines) {
+ print FILE $line;
+ }
+ close FILE;
+ } else {
+ foreach my $line (@lines) {
+ print $line;
+ }
+ }
}
sub rewrap_line {
virTestRewrapFile(const char *filename)
{
int ret = -1;
- char *outbuf = NULL;
char *script = NULL;
virCommandPtr cmd = NULL;
if (virAsprintf(&script, "%s/test-wrap-argv.pl", abs_srcdir) < 0)
goto cleanup;
- cmd = virCommandNewArgList(script, filename, NULL);
- virCommandSetOutputBuffer(cmd, &outbuf);
+ cmd = virCommandNewArgList(script, "--in-place", filename, NULL);
if (virCommandRun(cmd, NULL) < 0)
goto cleanup;
- if (virFileWriteStr(filename, outbuf, 0666) < 0)
- goto cleanup;
-
ret = 0;
cleanup:
VIR_FREE(script);
virCommandFree(cmd);
- VIR_FREE(outbuf);
return ret;
}