#!/bin/sh
##
## Do xargs(1) line-by-line (for no "find -print0 | xargs --null" env.)
## Copyright (c) 2011 SATOH Fumiyasu @ OSSTech Corp., Japan
##               <https://www.OSSTech.co.jp/>
##
## License: GNU General Public License version 3
## Date: 2011-01-24, since 2011-01-20
##

set -u

perr()
{
  echo "$0: ERROR: ${1-}" 1>&2
}

pdie()
{
  perr ${1+"$1"}
  exit "${2-1}"
}

cmd_try() {
  while [ $# -ge 1 ]; do
    if type "$1" >/dev/null 2>&1; then
      echo "$1"
      return 0
    fi
    shift
  done

  return 1
}

sed_cmd=`cmd_try /bin/sed /usr/bin/sed sed`
[ -z "$sed_cmd" ] && pdie "Cannot find sed command"

xargs_cmd=`cmd_try /bin/xargs /usr/bin/xargs xargs`
[ -z "$xargs_cmd" ] && pdie "Cannot find xargs command"

exec "$sed_cmd" 's/\([ 	'\''"\\]\)/\\\1/g' |exec "$xargs_cmd" ${1+"$@"}

