#!/bin/ksh
# IBM_PROLOG_BEGIN_TAG 
# This is an automatically generated prolog. 
#  
# bos720 src/bos/usr/lib/nim/methods/c_mkisofs.sh 1.1 
#  
# Licensed Materials - Property of IBM 
#  
# COPYRIGHT International Business Machines Corp. 2008 
# All Rights Reserved 
#  
# US Government Users Restricted Rights - Use, duplication or 
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 
#  
# IBM_PROLOG_END_TAG 

# include common NIM shell defines/functions
NIMPATH=${0%/*}
NIMPATH=${NIMPATH%/*}
[[ ${NIMPATH} = ${0} ]] && NIMPATH=/usr/lpp/bos.sysmgt/nim
NIM_METHODS="${NIMPATH}/methods"
. ${NIM_METHODS}/c_sh_lib

#---------------------------- local defines     --------------------------------
MKISOFS="/usr/bin/mkisofs"
MKISOFS_ARGS="-U -D -volid OVF_CUSTOMIZATION -sysid AIX -f"
#---------------------------- module globals    --------------------------------
REQUIRED_ATTRS="src_dir location"
OPTIONAL_ATTRS=""
location=""
src_dir=""

#*---------------------------- mk_isofs             ------------------------------
#
# NAME: mk_isofs        
#
# FUNCTION:
#		creates the iso file from the given location
#
# EXECUTION ENVIRONMENT:
#
# NOTES:
#
# RECOVERY OPERATION:
#
# DATA STRUCTURES:
#		parameters:
#		global:
#
# RETURNS: (int)
#		0							= no errors
#		>0							= failure
#
# OUTPUT:
#-----------------------------------------------------------------------------*/
function mk_isofs {
	
    typeset dir=""

    if [[ ! -d ${src_dir} ]]
    then
	error ${ERR_ENOENT} ${src_dir}
    fi

    dir=${location%/*}
    
    if [[ ! -d ${dir} ]]
    then
	error ${ERR_ENOENT} ${dir}
    fi
    
    ${MKISOFS} ${MKISOFS_ARGS} -o ${location} ${src_dir} >/dev/null 2>${ERR} || err_from_cmd ${MKISOFS}

    return 0

} # end of mk_isofs

#*---------------------------- c_mkisofs           ------------------------------
#
# NAME: c_mkisofs
#
# FUNCTION:
#		creates 
#
# EXECUTION ENVIRONMENT:
#
# NOTES:
#
# RECOVERY OPERATION:
#
# DATA STRUCTURES:
#		parameters:
#		global:
#
# RETURNS: (int)
#		0							= no errors
#		>0							= failure
#
# OUTPUT:
#-----------------------------------------------------------------------------*/

# signal processing
trap cleanup 0
trap err_signal 1 2 11 15

# NIM initialization
nim_init

# local variables
func=mk_isofs

# set parameters from command line
while getopts :a:fqv c
do
	case ${c} in

		a)		# validate the attr ass
				parse_attr_ass "${OPTARG}"

				# include the assignment for use in this environment
				eval ${variable}=\"${value}\"
		;;


		q)		# show attr info
				cmd_what
				exit 0
		;;

		v)		# verbose mode (for debugging)
				set -x
				for i in $(typeset +f)
				do
					typeset -ft $i
				done
		;;

		\?)	# unknown option
				error ${ERR_BAD_OPT} ${OPTARG}
		;;
	esac
done

# check for missing attrs
ck_attrs


# create the directory or file
eval ${func} 

# success
exit 0
