#!/usr/bin/env bash

# example as used in script
    fromString="webtools/committers"
    if [ "patches" == $distribution ] 
    then
      toString="webtools/patches"
    else
      toString="webtools/downloads"
    fi
    replaceCommand="s!${fromString}!${toString}!g"

    # remember TODIR already has a slash
    ${REMOTE_SSH_COMMAND} perl -w -pi -e ${replaceCommand} ${TODIR}${dropDirName}/*.php

# example of one liner    
    find ./features/ -name "*.jar"  | sort | sed -e 's/\.jar$//' > features-jar.txt
    
# example of one liner     
    find ./ -name "consoleLogs.php"  | sed -iORIG -e 's/aDirectory\.closedir/aDirectory->close/' 
    