#!/bin/sh
#
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
#
# Create a new type from scratch
#

. cdist-config
[ $# -eq 1 ] || __cdist_usage "<type>"
set -eu

__cdist_type="$1"; shift
__cdist_my_type_dir="$(__cdist_type_dir "$__cdist_type")"

if [ -d "$__cdist_my_type_dir" ]; then
   __cdist_usage "Type $__cdist_type already exists"
fi

echo "Creating type $__cdist_type in $__cdist_my_type_dir ..."
# Base
mkdir -p "$__cdist_my_type_dir"

# Parameter
mkdir -p "$(__cdist_type_parameter_dir "$__cdist_type")"
touch "$(__cdist_type_parameter_dir "$__cdist_type")/${__cdist_name_parameter_required}"
touch "$(__cdist_type_parameter_dir "$__cdist_type")/${__cdist_name_parameter_optional}"

# Manifest
cat "$__cdist_abs_mydir/../doc/dev/header" - << eof > "$__cdist_my_type_dir/${__cdist_name_manifest}"

#
# This is the manifest, which can be used to create other objects like this:
# __file /path/to/destination --source /from/where/
#
# To tell cdist to make use of it, you need to make it executable (chmod +x)
#
#

eof

# Gencode remote
cat "$__cdist_abs_mydir/../doc/dev/header" - << eof > "$(__cdist_type_dir "$__cdist_type")/${__cdist_name_gencode}-${__cdist_name_gencode_remote}"

#
# This file should generate code on stdout, which will be collected by cdist
# and run on the target.
#
# To tell cdist to make use of it, you need to make it executable (chmod +x)
#
#

eof

cat "$__cdist_abs_mydir/../doc/dev/header" - << eof > "$(__cdist_type_dir "$__cdist_type")/${__cdist_name_gencode}-${__cdist_name_gencode_local}"

#
# This file should generate code on stdout, which will be collected by cdist
# and run on the same machine cdist-deploy-to is executed.
#
# To tell cdist to make use of it, you need to make it executable (chmod +x)
#
#

eof

# Explorer
mkdir -p "$__cdist_my_type_dir/${__cdist_name_explorer}"