#!/bin/bash
set -u

declare ThisScript=${0##*/}
declare Workspace=
declare WorkspaceRoot=
declare GrepExpr=${1:-}
declare SubExpr=${2:-}
declare -i ErrorCount=0
declare FilesList=

function msg () { echo "$*"; }
function errmsg () { msg "\n${1:-Unknown Error}\n"; ErrorCount+=1; }
function bail () { errmsg "${1:-Unknown Error}"; exit "$ErrorCount"; }

function usage () {
   msg "USAGE: $ThisScript <GrepExpr> [<SubExpr>] [-t <TopDir>]"
   exit 2
}

[[ -n "$GrepExpr" ]] || usage

Workspace=$(p4 set -q P4CLIENT|cut -d= -f2)
WorkspaceRoot=$(p4 -ztag -F %Root% client -o "$Workspace")

FilesList=$(mktemp)

find $WorkspaceRoot/ -type f -exec grep -l "$GrepExpr" {} \; > "$FilesList"

while read -r File; do
   msg "Substituting $SubExpr in file '$File'."
   grep "$GrepExpr" "$File"
done < "$FilesList"
