xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/kselftest/prefix.pl (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Worker#!/usr/bin/env perl
2*053f45beSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0
3*053f45beSAndroid Build Coastguard Worker# Prefix all lines with "# ", unbuffered. Command being piped in may need
4*053f45beSAndroid Build Coastguard Worker# to have unbuffering forced with "stdbuf -i0 -o0 -e0 $cmd".
5*053f45beSAndroid Build Coastguard Workeruse strict;
6*053f45beSAndroid Build Coastguard Workeruse IO::Handle;
7*053f45beSAndroid Build Coastguard Worker
8*053f45beSAndroid Build Coastguard Workerbinmode STDIN;
9*053f45beSAndroid Build Coastguard Workerbinmode STDOUT;
10*053f45beSAndroid Build Coastguard Worker
11*053f45beSAndroid Build Coastguard WorkerSTDOUT->autoflush(1);
12*053f45beSAndroid Build Coastguard Worker
13*053f45beSAndroid Build Coastguard Workermy $needed = 1;
14*053f45beSAndroid Build Coastguard Workerwhile (1) {
15*053f45beSAndroid Build Coastguard Worker	my $char;
16*053f45beSAndroid Build Coastguard Worker	my $bytes = sysread(STDIN, $char, 1);
17*053f45beSAndroid Build Coastguard Worker	exit 0 if ($bytes == 0);
18*053f45beSAndroid Build Coastguard Worker	if ($needed) {
19*053f45beSAndroid Build Coastguard Worker		print "# ";
20*053f45beSAndroid Build Coastguard Worker		$needed = 0;
21*053f45beSAndroid Build Coastguard Worker	}
22*053f45beSAndroid Build Coastguard Worker	print $char;
23*053f45beSAndroid Build Coastguard Worker	$needed = 1 if ($char eq "\n");
24*053f45beSAndroid Build Coastguard Worker}
25