#!/bin/sh Usage() { cat <&1 | ${0##*/} EOF return 0 } short_status() { local line="" change="" file="" while read line; do case "${line}" in cvs\ status:*Examining*) curdir=${line#cvs status: Examining } ;; File:\ *Status:\ Locally*) change=${line##*Locally } file=${line%%Status:*} [ "$change" = "Removed" ] && file=${file#File: no file } || file=${file#File: } printf "%-10s: %s\n" "${change}" "${curdir}/${file}" ;; esac done return 0 } [ $# -lt 2 ] || { Usage 1>&2; exit 1; } [ "$1" = "--help" -o "$1" = "-h" ] && { Usage; exit 0; } input=${1:-/dev/stdin} [ "$input" = "-" ] && input="/dev/stdin" short_status < "${input}"