|
|
|
#!/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}"
|