File mtt/lib/rep/mtt_rep_diy artifact 8134d7ef8f part of check-in a8cce33cfa


#! /bin/sh

rep_name="diy"

help_message="
	A representation you can create all by yourself!

	The purpose of this representation is to help in the creation of a new DIY rep structure.
	Eventually it should form a template for creating new representations.
"

non_standard_options="
	--crash:	make the computer crash, wiping the hard drive in the process
	--recover:	attempt to recover data after crash (by crying very loudly for 10 minutes)
"

texi_message="
This message should be really, really helpful.
@node Stuff, More Stuff, Top, Top
Stuff!
@node More Stuff, Top, Top, Top
More Stuff
"

# function definitions for non-standard options (should have same name)
crash () {
    touch .crash
    echo "IDIOT!"
    exit 99
}
recover () {
    if [ -f .crash ]; then
	cat <<EOF
A long time ago
in galaxy far away
data can't be found
EOF
    else
	echo "Recovery worked - your data is safe!"
    fi
}
hello () {
    echo "Hello ${USER}!"
}

languages="ada c c++ fortran m pascal ps" # this is used for documentation only
process_language () {
    Language=$1
    case ${Language} in
	'c')
	    echo "C is a good language"
	    ;;
	'c')
	    echo "C++ is a great language"
	    ;;
	*)
	    exit ${ELanguageUnknown}
	    ;;
    esac
}

#####################################################################
###  It should not be necessary to edit anything below this line  ###
#####################################################################

# Error codes
ELanguageUnknown="-2"		# MTT will continue from here
ENoLanguageSpecified="-10"

help () {
    cat <<EOF

$0: help

	MTT representation ${rep_name}
${help_message}
EOF
}

usage () {
    cat <<EOF

$0: usage

	mtt [mtt_options] ${rep_name} [options] lang

	standard options:

	--help:		print useful help message
	--usage:	print this useful message
	--texi:		print very useful message

	additional options:
${non_standard_options}
EOF
}

texi () {
    cat <<EOF
@settitle MTT: ${rep_name} representation
${texi_message}
EOF
}

error () {
    cat <<EOF
*** Error: MTT (${rep_name}): $1 : exiting ($2)
EOF
    exit $2
}

warn () {
    cat <<EOF
*** Warning: MTT (${rep_name}): $1 : continuing
EOF
}

process_arguments () {
    if [ $# -eq 0 ]; then
	help
	usage
    else
	while [ -n "`echo $1 | grep '^--'`" ]; do
	    option=`echo $1 | sed 's/\-\-\(.*\)/\1/'`
	    ${option} 2> /dev/null || warn "option --${option} unknown"
	    shift
	done   
	export Language="$*"
    fi
}

process_arguments $*
if [ ! "${Language}" ]; then
    error "no language specified" ${NoLanguageSpecified}
fi

process_language ${Language}
	


MTT: Model Transformation Tools
GitHub | SourceHut | Sourceforge | Fossil RSS ]