## ## prop -- Display progress with a running propeller ## Copyright (c) 1998-2007 Ralf S. Engelschall ## ## This file is part of shtool and free software; you can redistribute ## it and/or modify it under the terms of the GNU General Public ## License as published by the Free Software Foundation; either version ## 2 of the License, or (at your option) any later version. ## ## This file is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA, or contact Ralf S. Engelschall . ## str_tool="prop" str_usage="[-p|--prefix ]" arg_spec="0=" opt_spec="p:" opt_alias="p:prefix" opt_p="" . ./sh.common perl='' for dir in `echo $PATH | sed -e 's/:/ /g'` .; do if [ -f "$dir/perl" ]; then perl="$dir/perl" break fi done if [ ".$perl" != . ]; then # Perl is preferred because writing to STDERR in # Perl really writes immediately as one would expect $perl -e ' @p = ("|","/","-","\\"); $i = 0; while () { printf(STDERR "\r%s...%s\b", $ARGV[0], $p[$i++]); $i = 0 if ($i > 3); } printf(STDERR "\r%s \n", $ARGV[0]); ' "$opt_p" else # But if Perl doesn't exists we use Awk even # some Awk's buffer even the /dev/stderr writing :-( awk ' BEGIN { split("|#/#-#\\", p, "#"); i = 1; } { printf("\r%s%c\b", prefix, p[i++]) > "/dev/stderr"; if (i > 4) { i = 1; } } END { printf("\r%s \n", prefix) > "/dev/stderr"; } ' "prefix=$opt_p" fi shtool_exit 0 ## ## manual page ## =pod =head1 NAME B - B propeller processing indication =head1 SYNOPSIS B [B<-p>|B<--prefix> I] =head1 DESCRIPTION This command displays a processing indication though a running propeller. It is intended to be run at the end of a pipe ("C<|>") sequence where on C logging/processing informations found. For every line on C the propeller advances one step clock-wise. =head1 OPTIONS The following command line options are available. =over 4 =item B<-p>, B<--prefix> I Set a particular prefix I which is displayed in front of the propeller. The default is no prefix string. =back =head1 EXAMPLE # shell script configure 2>&1 |\ tee logfile |\ shtool prop -p "Configuring sources" =head1 HISTORY The B B command was originally written by Ralf S. Engelschall Erse@engelschall.comE in 1998 for B. It was later taken over into B. =head1 SEE ALSO shtool(1). =cut