#!/bin/sh basename="${0##*/}" if [ $# -lt 3 ] then printf "usage: %s TYPE-NAME AUTHOR-NAME AUTHOR-EMAIL [TYPE-BASE-PATH] TYPE-NAME Name of the type. AUTHOR-NAME Type author's full name. AUTHOR-EMAIL Type author's email. TYPE-BASE-PATH Path to the base directory of the type. If not set it defaults to '\$PWD/type'.\n" "${basename}" exit 1 fi type_name="$1" shift author_name="$1" shift author_email="$1" shift if [ $# -ge 1 ] then type_base_path="$1" shift else #type_base_path=~/.cdist/type type_base_path="$PWD/type" fi error() { printf "%s\n" "$*" >&2 } die() { error "$@" exit 1 } cd "$type_base_path" || die "Could not change to type directory: $type_base_path. You have to specify type base path or run me from within a cdist conf directory, e.g. ~/.cdist." year=$(date +%Y) copyright="# $year $author_name ($author_email)" license="# 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 . # " set -e mkdir "$type_name" cd "$type_name" ### man page header="cdist-type${type_name}(7)" header_length="${#header}" cat >> man.rst << DONE $header $(while [ "${header_length}" -gt 0 ]; do printf "="; header_length=$((header_length - 1)); done; printf "\n";) NAME ---- cdist-type${type_name} - TODO DESCRIPTION ----------- This space intentionally left blank. REQUIRED PARAMETERS ------------------- None. OPTIONAL PARAMETERS ------------------- None. BOOLEAN PARAMETERS ------------------ None. EXAMPLES -------- .. code-block:: sh # TODO ${type_name} SEE ALSO -------- :strong:\`TODO\`\\ (7) AUTHORS ------- $author_name <$author_email> COPYING ------- Copyright \(C) $year $author_name. 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. DONE ### manifest cat >> manifest << DONE #!/bin/sh -e # ${copyright} # ${license} os=\$(cat "\$__global/explorer/os") case "\$os" in *) printf "Your operating system (%s) is currently not supported by this type (%s)\n" "\$os" "\${__type##*/}" >&2 printf "Please contribute an implementation for it if you can.\n" >&2 exit 1 ;; esac DONE chmod +x manifest # gencode-remote cat >> gencode-remote << DONE #!/bin/sh -e # ${copyright} # ${license} DONE chmod +x gencode-remote printf "%s/%s\n" "$type_base_path" "$type_name"