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