1*4882a593Smuzhiyun#!/usr/bin/env perl 2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 3*4882a593Smuzhiyun# Prefix all lines with "# ", unbuffered. Command being piped in may need 4*4882a593Smuzhiyun# to have unbuffering forced with "stdbuf -i0 -o0 -e0 $cmd". 5*4882a593Smuzhiyunuse strict; 6*4882a593Smuzhiyunuse IO::Handle; 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunbinmode STDIN; 9*4882a593Smuzhiyunbinmode STDOUT; 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunSTDOUT->autoflush(1); 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunmy $needed = 1; 14*4882a593Smuzhiyunwhile (1) { 15*4882a593Smuzhiyun my $char; 16*4882a593Smuzhiyun my $bytes = sysread(STDIN, $char, 1); 17*4882a593Smuzhiyun exit 0 if ($bytes == 0); 18*4882a593Smuzhiyun if ($needed) { 19*4882a593Smuzhiyun print "# "; 20*4882a593Smuzhiyun $needed = 0; 21*4882a593Smuzhiyun } 22*4882a593Smuzhiyun print $char; 23*4882a593Smuzhiyun $needed = 1 if ($char eq "\n"); 24*4882a593Smuzhiyun} 25