159 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/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 <http://www.gnu.org/licenses/>.
 | 
						|
#
 | 
						|
"
 | 
						|
 | 
						|
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"
 |