#!/bin/bash

# Default settings
AUTHOR='YOUR NAME(YOUR@mail.address)'
INIT_VERSION='1.0'
INFO_URL='http://your.site.url'
LICENSE='GPL, http://www.gnu.org/copyleft/gpl.html'
SHELL='/bin/bash'

COMMAND_NAME=`basename $0`

version() { 
  sed -e 's/^    //' <<EndVersion
      Create shell script skeleton
      Version 1.0.0
      Author:  Takashi Kikuchi(tkskkc@gmail.com)
      Release date:  2008-08-13
      Last updated:  2008-08-13
      License:  GPL, http://www.gnu.org/copyleft/gpl.html
      More information at http://blog.k1kuch1.com
EndVersion
  exit 1
}

USAGE_STR="$COMMAND_NAME [-bshv] [-A AUTHOR] [-L LICENSE] [-U INFO_URL] [-V INIT_VERSION] SCRIPT_FILENAME SCRIPT_NAME"

usage() {
    sed -e 's/^    //' <<EndUsage 
      Usage:  $USAGE_STR
      Try '$COMMAND_NAME -h' for more information.    
EndUsage
    exit 1
}

help() { 
    sed -e 's/^    //' <<EndHelp
      Usage:  $USAGE_STR

      Options:
        -A AUTHOR
        	  作成者を指定する。
        -L LICENSE
        	  ライセンス情報を指定する。
        -U INFO_URL
        	  スクリプトの情報をアナウンスするurlを指定する。
        -V INIT_VERSION
            初期バージョンを指定する。
        -b
        	  シェルとしてbashを指定する。
        -s
        	  シェルとしてshを指定する。
        -h
        	  このヘルプメッセージを表示して終了する。
        -v
        	  バージョン情報を表示して終了する。

      More information at $INFO_URL
EndHelp
    exit 1
}

die() {
    echo "$*"
    exit 1
}


while getopts ":hvA:U:V:" Option
do
  case $Option in
  A)  
	  AUTHOR=$OPTARG
	  ;;
  U)  
	  INFO_URL=$OPTARG
	  ;;
  V)  
	  INIT_VERSION=$OPTARG
	  ;;
  b)
	  SHELL='/bin/bash'
	  ;;
  s)
	  SHELL='/bin/sh'
	  ;;
  h)
	  help
	  ;;
  v)
	  version
	  ;;
  esac
done
shift $(($OPTIND - 1))

# 引数チェック
[ -z "$1" ] && usage

SCRIPT_FILENAME=$1
# TODO $2 is nil
SCRIPT_NAME=${2:-$1}

cat > $SCRIPT_FILENAME <<SkelEnd
#!$SHELL

COMMAND_NAME=\`basename \$0\`

version() { 
  sed -e 's/^    //' <<EndVersion
      $SCRIPT_NAME
      Version  $INIT_VERSION
      Author:  $AUTHOR
      Release date:  $DATE
      Last updated:  $DATE
      License: $LICENSE
      More information at $INFO_URL
EndVersion
  exit 1
}

# TODO
USAGE_STR="\$COMMAND_NAME [-hv] ARGS"
usage() {
    sed -e 's/^    //' <<EndUsage 
      Usage: \$USAGE_STR
      Try '\$COMMAND_NAME -h' for more information.    
EndUsage
    exit 1
}

help() { 
    sed -e 's/^    //' <<EndHelp
      Usage: \$USAGE_STR

      Options:
    # TODO
        -O OptionARG
        	  Description

      More information at $INFO_URL
EndHelp
    exit 1
}


die()
{
    echo "\$*"
    exit 1
}


# TODO オプションを設定
while getopts ":vh" Option
do
  case \$Option in
  h)
	  help
	  ;;
  v)
	  version
	  ;;
  esac
done
shift \$((\$OPTIND - 1))

# TODO 引数チェック
[ -z "\$1" ] && usage


# TODO 以下に本処理を記述

SkelEnd

chmod +x $SCRIPT_FILENAME

