#! /bin/sh
# twitter-echo 1.0
# Copyright (c) 2008 MJY http://p.mjy.name/


# ARGS
while getopts 'u:p:jxh' opt; do
  case $opt in
    u ) TWITTER_ECHO_user="$OPTARG" ;;
    p ) TWITTER_ECHO_pass="$OPTARG" ;;
    j ) TWITTER_ECHO_format='json' ;;
    x ) TWITTER_ECHO_format='xml' ;;
    h ) echo \
'twitter-echo [options...] text...
  Options
    -u=USER  username
    -p=PASS  password
    -j  json format
    -x  xml format
    -h  help
  Environment variables
    TWITTER_ECHO_user
    TWITTER_ECHO_pass
    TWITTER_ECHO_format  "xml" or "json"'

        exit ;; 
  esac
done
shift  $(($OPTIND - 1))


# CHECK and SET
user=${TWITTER_ECHO_user:?Pleas use -u option.}
pass=${TWITTER_ECHO_pass:?Pleas use -p option.} 

format=${TWITTER_ECHO_format:-xml}
text="$@"


# UPDATE
if type curl >/dev/null; then
  curl -s -S -u "$user:$pass" -d status="$text"\
    "http://twitter.com/statuses/update.$format"
elif type wget >/dev/null; then
  wget --user "$user" --password "$pass"\
    --post-data status="$text"\
    --output-document - --quiet\
    "http://twitter.com/statuses/update.$format"
else
  echo $0: 'Please install "curl" or "wget".' >&2
  exit 1
fi

status=$?

# NEWLINE if json
[ "$format" = json ] && echo

exit $status

