diff --git a/bin/build-helper b/bin/build-helper
index ed41e438..7cfc4d55 100755
--- a/bin/build-helper
+++ b/bin/build-helper
@@ -74,7 +74,6 @@ SHELLCHECKCMD="shellcheck -s sh -f gcc -x"
# Skip SC2154 for variables starting with __ since such variables are cdist
# environment variables.
SHELLCHECK_SKIP=': __.*is referenced but not assigned.*\[SC2154\]'
-SHELLCHECKTMP=".shellcheck.tmp"
# Change to checkout directory
basedir="${0%/*}/../"
@@ -370,7 +369,7 @@ eof
cat << eof
Manual steps post release:
- cdist-web
- - send generated mailinglist.tmp mail
+ - send mail body generated in mailinglist.tmp and inform Dmitry for deb
- twitter
eof
;;
@@ -432,67 +431,53 @@ eof
;;
shellcheck-global-explorers)
- # shellcheck disable=SC2086
- find cdist/conf/explorer -type f -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
- test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
+ find cdist/conf/explorer -type f -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" || exit 0
;;
shellcheck-type-explorers)
- # shellcheck disable=SC2086
- find cdist/conf/type -type f -path "*/explorer/*" -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
- test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
+ find cdist/conf/type -type f -path "*/explorer/*" -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" || exit 0
;;
shellcheck-manifests)
- # shellcheck disable=SC2086
- find cdist/conf/type -type f -name manifest -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
- test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
+ find cdist/conf/type -type f -name manifest -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" || exit 0
;;
shellcheck-local-gencodes)
- # shellcheck disable=SC2086
- find cdist/conf/type -type f -name gencode-local -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
- test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
+ find cdist/conf/type -type f -name gencode-local -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" || exit 0
;;
shellcheck-remote-gencodes)
- # shellcheck disable=SC2086
- find cdist/conf/type -type f -name gencode-remote -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
- test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
+ find cdist/conf/type -type f -name gencode-remote -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" || exit 0
;;
shellcheck-scripts)
- # shellcheck disable=SC2086
- ${SHELLCHECKCMD} scripts/cdist-dump scripts/cdist-new-type > "${SHELLCHECKTMP}"
- test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
+ ${SHELLCHECKCMD} scripts/cdist-dump scripts/cdist-new-type || exit 0
;;
shellcheck-gencodes)
- "$0" shellcheck-local-gencodes || exit 1
- "$0" shellcheck-remote-gencodes || exit 1
+ "$0" shellcheck-local-gencodes
+ "$0" shellcheck-remote-gencodes
;;
shellcheck-types)
- "$0" shellcheck-type-explorers || exit 1
- "$0" shellcheck-manifests || exit 1
- "$0" shellcheck-gencodes || exit 1
+ "$0" shellcheck-type-explorers
+ "$0" shellcheck-manifests
+ "$0" shellcheck-gencodes
;;
shellcheck)
- "$0" shellcheck-global-explorers || exit 1
- "$0" shellcheck-types || exit 1
- "$0" shellcheck-scripts || exit 1
+ "$0" shellcheck-global-explorers
+ "$0" shellcheck-types
+ "$0" shellcheck-scripts
;;
shellcheck-type-files)
- # shellcheck disable=SC2086
- find cdist/conf/type -type f -path "*/files/*" -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}"
- test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; }
+ find cdist/conf/type -type f -path "*/files/*" -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" || exit 0
;;
shellcheck-with-files)
- "$0" shellcheck || exit 1
- "$0" shellcheck-type-files || exit 1
+ "$0" shellcheck
+ "$0" shellcheck-type-files
;;
shellcheck-build-helper)
@@ -550,7 +535,6 @@ eof
# Temp files
rm -f ./*.tmp
- rm -f ./.*.tmp
;;
distclean)
diff --git a/cdist/argparse.py b/cdist/argparse.py
index 611c484a..7dc683f3 100644
--- a/cdist/argparse.py
+++ b/cdist/argparse.py
@@ -6,7 +6,6 @@ import collections
import functools
import cdist.configuration
import cdist.preos
-import cdist.info
# set of beta sub-commands
@@ -437,37 +436,6 @@ def get_parsers():
' should be POSIX compatible shell.'))
parser['shell'].set_defaults(func=cdist.shell.Shell.commandline)
- # Info
- parser['info'] = parser['sub'].add_parser('info')
- parser['info'].add_argument(
- '-a', '--all', help='Display all info. This is the default.',
- action='store_true', default=False)
- parser['info'].add_argument(
- '-c', '--conf-dir',
- help='Add configuration directory (can be repeated).',
- action='append')
- parser['info'].add_argument(
- '-e', '--global-explorers',
- help='Display info for global explorers.', action='store_true',
- default=False)
- parser['info'].add_argument(
- '-F', '--fixed-string',
- help='Interpret pattern as a fixed string.', action='store_true',
- default=False)
- parser['info'].add_argument(
- '-f', '--full', help='Display full details.',
- action='store_true', default=False)
- parser['info'].add_argument(
- '-g', '--config-file',
- help='Use specified custom configuration file.',
- dest="config_file", required=False)
- parser['info'].add_argument(
- '-t', '--types', help='Display info for types.',
- action='store_true', default=False)
- parser['info'].add_argument(
- 'pattern', nargs='?', help='Glob pattern.')
- parser['info'].set_defaults(func=cdist.info.Info.commandline)
-
for p in parser:
parser[p].epilog = EPILOG
diff --git a/cdist/conf/type/__acl/gencode-remote b/cdist/conf/type/__acl/gencode-remote
index f4f0d1e2..6dab4d09 100755
--- a/cdist/conf/type/__acl/gencode-remote
+++ b/cdist/conf/type/__acl/gencode-remote
@@ -28,10 +28,7 @@ acl_path="/$__object_id"
acl_is="$( cat "$__object/explorer/acl_is" )"
-if [ -f "$__object/parameter/entry" ]
-then
- acl_should="$( cat "$__object/parameter/entry" )"
-elif [ -f "$__object/parameter/acl" ]
+if [ -f "$__object/parameter/acl" ]
then
acl_should="$( cat "$__object/parameter/acl" )"
elif
diff --git a/cdist/conf/type/__acl/man.rst b/cdist/conf/type/__acl/man.rst
index c3493e49..85e946ce 100644
--- a/cdist/conf/type/__acl/man.rst
+++ b/cdist/conf/type/__acl/man.rst
@@ -15,7 +15,7 @@ See ``setfacl`` and ``acl`` manpages for more details.
REQUIRED MULTIPLE PARAMETERS
----------------------------
-entry
+acl
Set ACL entry following ``getfacl`` output syntax.
@@ -36,8 +36,8 @@ remove
DEPRECATED PARAMETERS
---------------------
-Parameters ``acl``, ``user``, ``group``, ``mask`` and ``other`` are deprecated and they
-will be removed in future versions. Please use ``entry`` parameter instead.
+Parameters ``user``, ``group``, ``mask`` and ``other`` are deprecated and they
+will be removed in future versions. Please use ``acl`` parameter instead.
EXAMPLES
@@ -49,27 +49,27 @@ EXAMPLES
--default \
--recursive \
--remove \
- --entry user:alice:rwx \
- --entry user:bob:r-x \
- --entry group:project-group:rwx \
- --entry group:some-other-group:r-x \
- --entry mask::r-x \
- --entry other::r-x
+ --acl user:alice:rwx \
+ --acl user:bob:r-x \
+ --acl group:project-group:rwx \
+ --acl group:some-other-group:r-x \
+ --acl mask::r-x \
+ --acl other::r-x
# give Alice read-only access to subdir,
# but don't allow her to see parent content.
__acl /srv/project2 \
--remove \
- --entry default:group:secret-project:rwx \
- --entry group:secret-project:rwx \
- --entry user:alice:--x
+ --acl default:group:secret-project:rwx \
+ --acl group:secret-project:rwx \
+ --acl user:alice:--x
__acl /srv/project2/subdir \
--default \
--remove \
- --entry group:secret-project:rwx \
- --entry user:alice:r-x
+ --acl group:secret-project:rwx \
+ --acl user:alice:r-x
AUTHORS
diff --git a/cdist/conf/type/__acl/parameter/deprecated/acl b/cdist/conf/type/__acl/parameter/deprecated/acl
deleted file mode 100644
index 94e14159..00000000
--- a/cdist/conf/type/__acl/parameter/deprecated/acl
+++ /dev/null
@@ -1 +0,0 @@
-see manual for details
diff --git a/cdist/conf/type/__acl/parameter/optional_multiple b/cdist/conf/type/__acl/parameter/optional_multiple
index c615d507..95c25d55 100644
--- a/cdist/conf/type/__acl/parameter/optional_multiple
+++ b/cdist/conf/type/__acl/parameter/optional_multiple
@@ -1,4 +1,3 @@
-entry
acl
user
group
diff --git a/cdist/conf/type/__consul_agent/manifest b/cdist/conf/type/__consul_agent/manifest
index ee682d72..a88d26ed 100755
--- a/cdist/conf/type/__consul_agent/manifest
+++ b/cdist/conf/type/__consul_agent/manifest
@@ -181,7 +181,7 @@ init_upstart()
# Install init script to start on boot
case "$os" in
- devuan)
+ alpine|devuan)
init_sysvinit debian
;;
centos|redhat)
diff --git a/cdist/conf/type/__install_chroot_umount/manifest b/cdist/conf/type/__install_chroot_umount/manifest
deleted file mode 120000
index f17af67a..00000000
--- a/cdist/conf/type/__install_chroot_umount/manifest
+++ /dev/null
@@ -1 +0,0 @@
-../__chroot_umount/manifest
\ No newline at end of file
diff --git a/cdist/conf/type/__mysql_database/explorer/state b/cdist/conf/type/__mysql_database/explorer/state
deleted file mode 100755
index 79858695..00000000
--- a/cdist/conf/type/__mysql_database/explorer/state
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh -e
-#
-# 2020 Ander Punnar (ander-at-kvlt-dot-ee)
-#
-# 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 .
-#
-
-if [ -f "$__object/parameter/name" ]
-then
- name="$( cat "$__object/parameter/name" )"
-else
- name="$__object_id"
-fi
-
-if [ -n "$( mysql -B -N -e "show databases like '$name'" )" ]
-then
- echo 'present'
-else
- echo 'absent'
-fi
diff --git a/cdist/conf/type/__mysql_database/gencode-remote b/cdist/conf/type/__mysql_database/gencode-remote
index 1bdb2b11..23e51b05 100755
--- a/cdist/conf/type/__mysql_database/gencode-remote
+++ b/cdist/conf/type/__mysql_database/gencode-remote
@@ -1,6 +1,6 @@
#!/bin/sh -e
#
-# 2020 Ander Punnar (ander-at-kvlt-dot-ee)
+# 2012 Benedikt Koeppel (code@benediktkoeppel.ch)
#
# This file is part of cdist.
#
@@ -17,30 +17,38 @@
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see .
#
+#
-state_is="$( cat "$__object/explorer/state" )"
-
-state_should="$( cat "$__object/parameter/state" )"
-
-if [ "$state_is" = "$state_should" ]
-then
- exit 0
+# if --database was specified
+if [ -f "$__object/parameter/name" ]; then
+ database="$(cat "$__object/parameter/name")"
+else # otherwise use the object id as database name
+ database="$__object_id"
fi
-if [ -f "$__object/parameter/name" ]
-then
- name="$( cat "$__object/parameter/name" )"
-else
- name="$__object_id"
-fi
+cat <<-EOFF
+mysql -u root <<-EOF
+ CREATE DATABASE IF NOT EXISTS $database
+EOF
+EOFF
-case "$state_should" in
- present)
- echo "mysql -e 'create database \`$name\`'"
- echo "create database $name" >> "$__messages_out"
- ;;
- absent)
- echo "mysql -e 'drop database \`$name\`'"
- echo "drop database $name" >> "$__messages_out"
- ;;
-esac
+# if --user was specified
+if [ -f "$__object/parameter/user" ]; then
+ user="$(cat "$__object/parameter/user")"
+
+ # if --password was specified
+ if [ -f "$__object/parameter/password" ]; then
+ password="$(cat "$__object/parameter/password")"
+ cat <<-EOFF
+ mysql -u root <<-EOF
+ GRANT ALL PRIVILEGES ON $database.* to '$user'@'localhost' IDENTIFIED BY '$password';
+EOF
+EOFF
+ else
+ cat <<-EOFF
+ mysql -u root <<-EOF
+ GRANT ALL PRIVILEGES ON $database.* to '$user'@'localhost';
+EOF
+EOFF
+ fi
+fi
diff --git a/cdist/conf/type/__mysql_database/man.rst b/cdist/conf/type/__mysql_database/man.rst
index b3b56b5f..1e245a08 100644
--- a/cdist/conf/type/__mysql_database/man.rst
+++ b/cdist/conf/type/__mysql_database/man.rst
@@ -8,24 +8,24 @@ cdist-type__mysql_database - Manage a MySQL database
DESCRIPTION
-----------
+This cdist type allows you to install a MySQL database.
-Create MySQL database and optionally user with all privileges.
+REQUIRED PARAMETERS
+-------------------
+None.
OPTIONAL PARAMETERS
-------------------
name
- Name of database. Defaults to object id.
+ The name of the database to install
+ defaults to the object id
user
- Create user and give all privileges to database.
+ A user that should have access to the database
password
- Password for user.
-
-state
- Defaults to present.
- If absent and user is also set, both will be removed (with privileges).
+ The password for the user who manages the database
EXAMPLES
@@ -33,23 +33,17 @@ EXAMPLES
.. code-block:: sh
- # just create database
- __mysql_database foo
-
- # create database with respective user with all privileges to database
- __mysql_database bar \
- --user name \
- --password secret
+ __mysql_database "cdist" --name "cdist" --user "myuser" --password "mypwd"
AUTHORS
-------
-Ander Punnar
+Benedikt Koeppel
COPYING
-------
-Copyright \(C) 2020 Ander Punnar. 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.
+Copyright \(C) 2012 Benedikt Koeppel. 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.
diff --git a/cdist/conf/type/__mysql_database/manifest b/cdist/conf/type/__mysql_database/manifest
deleted file mode 100755
index a3c9ed5d..00000000
--- a/cdist/conf/type/__mysql_database/manifest
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh -e
-#
-# 2020 Ander Punnar (ander-at-kvlt-dot-ee)
-#
-# 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 .
-#
-
-if [ -f "$__object/parameter/user" ]
-then
- user="$( cat "$__object/parameter/user" )"
-fi
-
-if [ -f "$__object/parameter/password" ]
-then
- password="$( cat "$__object/parameter/password" )"
-fi
-
-if [ -n "$user" ] && [ -n "$password" ]
-then
- if [ -f "$__object/parameter/name" ]
- then
- database="$( cat "$__object/parameter/name" )"
- else
- database="$__object_id"
- fi
-
- state_should="$( cat "$__object/parameter/state" )"
-
- __mysql_user "$user" \
- --password "$password" \
- --state "$state_should"
-
- # removing user should remove all user's privileges
- require="__mysql_user/$user" \
- __mysql_privileges "$database/$user" \
- --database "$database" \
- --user "$user" \
- --state "$state_should"
-fi
diff --git a/cdist/conf/type/__mysql_database/parameter/default/state b/cdist/conf/type/__mysql_database/parameter/default/state
deleted file mode 100644
index e7f6134f..00000000
--- a/cdist/conf/type/__mysql_database/parameter/default/state
+++ /dev/null
@@ -1 +0,0 @@
-present
diff --git a/cdist/conf/type/__mysql_database/parameter/optional b/cdist/conf/type/__mysql_database/parameter/optional
index 6c0b1e85..756afee7 100644
--- a/cdist/conf/type/__mysql_database/parameter/optional
+++ b/cdist/conf/type/__mysql_database/parameter/optional
@@ -1,4 +1,3 @@
name
user
password
-state
diff --git a/cdist/conf/type/__mysql_privileges/explorer/state b/cdist/conf/type/__mysql_privileges/explorer/state
deleted file mode 100755
index 0cfbaacd..00000000
--- a/cdist/conf/type/__mysql_privileges/explorer/state
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh -e
-#
-# 2020 Ander Punnar (ander-at-kvlt-dot-ee)
-#
-# 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 .
-#
-
-privileges="$( cat "$__object/parameter/privileges" )"
-
-database="$( cat "$__object/parameter/database" )"
-
-table="$( cat "$__object/parameter/table" )"
-
-user="$( cat "$__object/parameter/user" )"
-
-host="$( cat "$__object/parameter/host" )"
-
-check_privileges="$(
- mysql -B -N -e "show grants for '$user'@'$host'" \
- | grep -Ei "^grant $privileges on .$database.\..$table. to " || true )"
-
-if [ -n "$check_privileges" ]
-then
- echo 'present'
-else
- echo 'absent'
-fi
diff --git a/cdist/conf/type/__mysql_privileges/gencode-remote b/cdist/conf/type/__mysql_privileges/gencode-remote
deleted file mode 100755
index bcd362e6..00000000
--- a/cdist/conf/type/__mysql_privileges/gencode-remote
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh -e
-#
-# 2020 Ander Punnar (ander-at-kvlt-dot-ee)
-#
-# 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 .
-#
-
-state_is="$( cat "$__object/explorer/state" )"
-
-state_should="$( cat "$__object/parameter/state" )"
-
-if [ "$state_is" = "$state_should" ]
-then
- exit 0
-fi
-
-privileges="$( cat "$__object/parameter/privileges" )"
-
-database="$( cat "$__object/parameter/database" )"
-
-table="$( cat "$__object/parameter/table" )"
-
-user="$( cat "$__object/parameter/user" )"
-
-host="$( cat "$__object/parameter/host" )"
-
-case "$state_should" in
- present)
- echo "mysql -e 'grant $privileges on \`$database\`.\`$table\` to \`$user\`@\`$host\`'"
- echo "grant $privileges on $database.$table to $user@$host" >> "$__messages_out"
- ;;
- absent)
- echo "mysql -e 'revoke $privileges on \`$database\`.\`$table\` from \`$user\`@\`$host\`'"
- echo "revoke $privileges on $database.$table from $user@$host" >> "$__messages_out"
- ;;
-esac
diff --git a/cdist/conf/type/__mysql_privileges/man.rst b/cdist/conf/type/__mysql_privileges/man.rst
deleted file mode 100644
index 8208d7d4..00000000
--- a/cdist/conf/type/__mysql_privileges/man.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-cdist-type__mysql_privileges(7)
-===============================
-
-NAME
-----
-cdist-type__mysql_privileges - Manage MySQL privileges
-
-
-DESCRIPTION
------------
-
-Grant and revoke privileges of MySQL user.
-
-
-REQUIRED PARAMETERS
--------------------
-database
- Name of database.
-
-User
- Name of user.
-
-
-OPTIONAL PARAMETERS
--------------------
-privileges
- Defaults to "all".
-
-table
- Defaults to "*".
-
-host
- Defaults to localhost.
-
-state
- "present" grants and "absent" revokes. Defaults to present.
-
-
-EXAMPLES
---------
-
-.. code-block:: sh
-
- __mysql_privileges user-to-db --database db --user user
-
-
-AUTHORS
--------
-Ander Punnar
-
-
-COPYING
--------
-Copyright \(C) 2020 Ander Punnar. 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.
diff --git a/cdist/conf/type/__mysql_privileges/parameter/default/host b/cdist/conf/type/__mysql_privileges/parameter/default/host
deleted file mode 100644
index 2fbb50c4..00000000
--- a/cdist/conf/type/__mysql_privileges/parameter/default/host
+++ /dev/null
@@ -1 +0,0 @@
-localhost
diff --git a/cdist/conf/type/__mysql_privileges/parameter/default/privileges b/cdist/conf/type/__mysql_privileges/parameter/default/privileges
deleted file mode 100644
index 5472efad..00000000
--- a/cdist/conf/type/__mysql_privileges/parameter/default/privileges
+++ /dev/null
@@ -1 +0,0 @@
-all privileges
diff --git a/cdist/conf/type/__mysql_privileges/parameter/default/state b/cdist/conf/type/__mysql_privileges/parameter/default/state
deleted file mode 100644
index e7f6134f..00000000
--- a/cdist/conf/type/__mysql_privileges/parameter/default/state
+++ /dev/null
@@ -1 +0,0 @@
-present
diff --git a/cdist/conf/type/__mysql_privileges/parameter/default/table b/cdist/conf/type/__mysql_privileges/parameter/default/table
deleted file mode 100644
index 72e8ffc0..00000000
--- a/cdist/conf/type/__mysql_privileges/parameter/default/table
+++ /dev/null
@@ -1 +0,0 @@
-*
diff --git a/cdist/conf/type/__mysql_privileges/parameter/optional b/cdist/conf/type/__mysql_privileges/parameter/optional
deleted file mode 100644
index d4ed5bc5..00000000
--- a/cdist/conf/type/__mysql_privileges/parameter/optional
+++ /dev/null
@@ -1,4 +0,0 @@
-privileges
-table
-host
-state
diff --git a/cdist/conf/type/__mysql_privileges/parameter/required b/cdist/conf/type/__mysql_privileges/parameter/required
deleted file mode 100644
index 152b4a1e..00000000
--- a/cdist/conf/type/__mysql_privileges/parameter/required
+++ /dev/null
@@ -1,2 +0,0 @@
-database
-user
diff --git a/cdist/conf/type/__mysql_user/explorer/state b/cdist/conf/type/__mysql_user/explorer/state
deleted file mode 100755
index 6817ee9d..00000000
--- a/cdist/conf/type/__mysql_user/explorer/state
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/sh -e
-#
-# 2020 Ander Punnar (ander-at-kvlt-dot-ee)
-#
-# 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 .
-#
-
-if [ -f "$__object/parameter/name" ]
-then
- name="$( cat "$__object/parameter/name" )"
-else
- name="$__object_id"
-fi
-
-if [ -f "$__object/parameter/password" ]
-then
- password="$( cat "$__object/parameter/password" )"
-else
- password=''
-fi
-
-host="$( cat "$__object/parameter/host" )"
-
-check_user="$( mysql -B -N -e "select user from mysql.user where user = '$name' and host = '$host'" )"
-
-if [ -n "$check_user" ]
-then
- if [ -n "$password" ]
- then
- check_password="$( mysql -B -N -e "select user from mysql.user where user = '$name' and host = '$host' and password = password( '$password' )" )"
- fi
-
- if [ -n "$password" ] && [ -z "$check_password" ]
- then
- echo 'change-password'
- else
- echo 'present'
- fi
-else
- echo 'absent'
-fi
diff --git a/cdist/conf/type/__mysql_user/gencode-remote b/cdist/conf/type/__mysql_user/gencode-remote
deleted file mode 100755
index 5f13bc87..00000000
--- a/cdist/conf/type/__mysql_user/gencode-remote
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/sh -e
-#
-# 2020 Ander Punnar (ander-at-kvlt-dot-ee)
-#
-# 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 .
-#
-
-state_is="$( cat "$__object/explorer/state" )"
-
-state_should="$( cat "$__object/parameter/state" )"
-
-if [ "$state_is" = "$state_should" ]
-then
- exit 0
-fi
-
-if [ -f "$__object/parameter/name" ]
-then
- name="$( cat "$__object/parameter/name" )"
-else
- name="$__object_id"
-fi
-
-host="$( cat "$__object/parameter/host" )"
-
-if [ -f "$__object/parameter/password" ]
-then
- password="$( cat "$__object/parameter/password" )"
-else
- if [ "$state_should" = 'present' ]
- then
- echo '--password needed' >&2
- exit 1
- else
- password=''
- fi
-fi
-
-if [ "$state_is" = 'absent' ] && [ "$state_should" = 'present' ]
-then
- echo "mysql -e 'create user \`$name\`@\`$host\` identified by \"$password\"'"
- echo "create user $name@$host" >> "$__messages_out"
-
-elif [ "$state_is" != 'absent' ] && [ "$state_should" = 'absent' ]
-then
- echo "mysql -e 'drop user \`$name\`@\`$host\`'"
- echo "drop user $name@$host" >> "$__messages_out"
-
-elif [ "$state_is" = 'change-password' ]
-then
- # this only works with MySQL 5.7.6 and later or MariaDB 10.1.20 and later
- echo "mysql -e 'alter user \`$name\`@\`$host\` identified by \"$password\"'"
- echo "mysql -e 'flush privileges'"
- echo "change password $name@$host" >> "$__messages_out"
-fi
diff --git a/cdist/conf/type/__mysql_user/man.rst b/cdist/conf/type/__mysql_user/man.rst
deleted file mode 100644
index c2b222d5..00000000
--- a/cdist/conf/type/__mysql_user/man.rst
+++ /dev/null
@@ -1,48 +0,0 @@
-cdist-type__mysql_user(7)
-=========================
-
-NAME
-----
-cdist-type__mysql_user - Manage a MySQL user
-
-
-DESCRIPTION
------------
-
-Create MySQL user or change password for the user.
-
-
-OPTIONAL PARAMETERS
--------------------
-name
- Name of user. Defaults to object id.
-
-host
- Host of user. Defaults to localhost.
-
-password
- Password of user.
-
-state
- Defaults to present.
-
-
-EXAMPLES
---------
-
-.. code-block:: sh
-
- __mysql_user user --password secret
-
-
-AUTHORS
--------
-Ander Punnar
-
-
-COPYING
--------
-Copyright \(C) 2020 Ander Punnar. 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.
diff --git a/cdist/conf/type/__mysql_user/parameter/default/host b/cdist/conf/type/__mysql_user/parameter/default/host
deleted file mode 100644
index 2fbb50c4..00000000
--- a/cdist/conf/type/__mysql_user/parameter/default/host
+++ /dev/null
@@ -1 +0,0 @@
-localhost
diff --git a/cdist/conf/type/__mysql_user/parameter/default/state b/cdist/conf/type/__mysql_user/parameter/default/state
deleted file mode 100644
index e7f6134f..00000000
--- a/cdist/conf/type/__mysql_user/parameter/default/state
+++ /dev/null
@@ -1 +0,0 @@
-present
diff --git a/cdist/conf/type/__mysql_user/parameter/optional b/cdist/conf/type/__mysql_user/parameter/optional
deleted file mode 100644
index a286266c..00000000
--- a/cdist/conf/type/__mysql_user/parameter/optional
+++ /dev/null
@@ -1,4 +0,0 @@
-name
-host
-password
-state
diff --git a/cdist/conf/type/__openldap_server/gencode-remote b/cdist/conf/type/__openldap_server/gencode-remote
deleted file mode 100644
index b1e98f8c..00000000
--- a/cdist/conf/type/__openldap_server/gencode-remote
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-manager_dn=$(cat "${__object}/parameter/manager-dn")
-manager_password=$(cat "${__object}/parameter/manager-password")
-description=$(cat "${__object}/parameter/description")
-suffix=$(cat "${__object}/parameter/suffix")
-suffix_dc=$(printf "%s" "${suffix}" | awk -F',' '{print $1}' | awk -F'=' '{print $2}')
-
-SLAPD_IPC=$(tr '\n' ' ' < "${__object}/parameter/slapd-url" | awk '{ print $1}')
-
-cat <&1 > /dev/null; then
- # Already exists, use ldapmodify
- ldapmodify -xZ -D "${manager_dn}" -w "${manager_password}" -H '${SLAPD_IPC}' <
-Evilham
-
-
-COPYING
--------
-Copyright \(C) 2020 ungleich glarus ag. 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.
diff --git a/cdist/conf/type/__openldap_server/manifest b/cdist/conf/type/__openldap_server/manifest
deleted file mode 100644
index dadc9f20..00000000
--- a/cdist/conf/type/__openldap_server/manifest
+++ /dev/null
@@ -1,263 +0,0 @@
-#!/bin/sh
-
-name="${__target_host}"
-manager_dn=$(cat "${__object}/parameter/manager-dn")
-manager_password_hash=$(cat "${__object}/parameter/manager-password-hash")
-serverid=$(cat "${__object}/parameter/serverid")
-suffix=$(cat "${__object}/parameter/suffix")
-slapd_modules=$(cat "${__object}/parameter/module" 2>/dev/null || true)
-schemas=$(cat "${__object}/parameter/schema")
-slapd_urls=$(tr '\n' ' ' < "${__object}/parameter/slapd-url")
-tls_cipher_suite=$(cat "${__object}/parameter/tls-cipher-suite" 2>/dev/null || true)
-
-
-os="$(cat "${__global}/explorer/os")"
-
-# Setup OS-dependent vars
-CONF_OWNER="root"
-CONF_GROUP="root"
-case "${os}" in
- freebsd)
- PKGS="openldap-server"
- ETC="/usr/local/etc"
- SLAPD_DIR="/usr/local/etc/openldap"
- SLAPD_DATA_DIR="/var/db/openldap-data"
- SLAPD_RUN_DIR="/var/run/openldap"
- SLAPD_MODULE_PATH="/usr/local/libexec/openldap"
- if [ -z "${slapd_modules}" ]; then
- # It looks like ppolicy and syncprov must be compiled
- slapd_modules="back_mdb back_monitor"
- fi
- CONF_OWNER="ldap"
- CONF_GROUP="ldap"
- if [ -z "${tls_cipher_suite}" ]; then
- # TODO: research default for FreeBSD. 'NORMAL' appears to not work
- tls_cipher_suite="HIGH:MEDIUM:+SSLv2"
- fi
- ;;
- debian|ubuntu|devuan)
- PKGS="slapd ldap-utils"
- ETC="/etc"
- SLAPD_DIR="/etc/ldap"
- SLAPD_DATA_DIR="/var/lib/ldap"
- SLAPD_RUN_DIR="/var/run/slapd"
- SLAPD_MODULE_PATH="/usr/lib/ldap"
- if [ -z "${slapd_modules}" ]; then
- slapd_modules="back_mdb ppolicy syncprov back_monitor"
- fi
- if [ -z "${tls_cipher_suite}" ]; then
- tls_cipher_suite="NORMAL"
- fi
- ;;
- *)
- echo "Don't know the openldap defaults for: $os" >&2
- exit 1
- ;;
-esac
-
-PKG_MAIN=$(echo "${PKGS}" | awk '{print $1;}')
-
-
-# Determine if __letsencrypt_cert is to be used and setup vars accordingly
-if [ -f "${__object}/parameter/tls-cert" ]; then
- tls_cert=$(cat "${__object}/parameter/tls-cert")
-
- if [ ! -f "${__object}/parameter/tls-privkey" ]; then
- echo "When tls-cert is defined, tls-privkey is also required." >&2
- exit 1
- fi
- tls_privkey=$(cat "${__object}/parameter/tls-privkey")
-
- if [ ! -f "${__object}/parameter/tls-ca" ]; then
- echo "When tls-cert is defined, tls-ca is also required." >&2
- exit 1
- fi
- tls_ca=$(cat "${__object}/parameter/tls-ca")
-
- _skip_letsencrypt_cert="YES"
-else
- if [ ! -f "${__object}/parameter/admin-email" ]; then
- echo "When using __letsencrypt_cert, admin-email is also required." >&2
- exit 1
- fi
- admin_email=$(cat "${__object}/parameter/admin-email")
-
- tls_cert="${SLAPD_DIR}/sasl2/cert.pem"
- tls_privkey="${SLAPD_DIR}/sasl2/privkey.pem"
- tls_ca="${SLAPD_DIR}/sasl2/chain.pem"
-fi
-
-mkdir "${__object}/files"
-ldapconf="${__object}/files/ldapconf"
-
-replication=""
-if [ -f "${__object}/parameter/replicate" ]; then
- replication=yes
-
- if [ ! -f "${__object}/parameter/syncrepl-searchbase" ]; then
- echo "Requiring the searchbase for replication" >&2
- exit 1
- fi
- syncrepl_searchbase=$(cat "${__object}/parameter/syncrepl-searchbase")
-
- if [ ! -f "${__object}/parameter/syncrepl-credentials" ]; then
- echo "Requiring credentials for replication" >&2
- exit 1
- fi
-
- syncrepl_credentials=$(cat "${__object}/parameter/syncrepl-credentials")
-
- if [ ! -f "${__object}/parameter/syncrepl-host" ]; then
- echo "Requiring host(s) for replication" >&2
- exit 1
- fi
- syncrepl_hosts=$(cat "${__object}/parameter/syncrepl-host")
-
-fi
-
-# Install required packages
-for pkg in ${PKGS}; do
- __package "${pkg}"
-done
-
-
-require="__package/${PKG_MAIN}" __start_on_boot slapd
-
-# Setup -h flag for the listeners. See man slapd (-h flag).
-case "${os}" in
- freebsd)
- require="__start_on_boot/slapd" __key_value \
- --file "/etc/rc.conf" \
- --key "slapd_flags" \
- --value "\"-h '${slapd_urls}'\"" \
- --delimiter "=" \
- --comment "# LDAP Listener URLs" \
- "${__target_host}__slapd_flags"
- ;;
- debian|ubuntu|devuan)
- require="__package/${PKG_MAIN}" __line rm_slapd_conf \
- --file ${ETC}/default/slapd \
- --regex 'SLAPD_CONF=.*' \
- --state absent
-
- require="__package/${PKG_MAIN}" __line rm_slapd_services \
- --file ${ETC}/default/slapd \
- --regex 'SLAPD_SERVICES=.*' \
- --state absent
-
- require="__line/rm_slapd_conf" __line add_slapd_conf \
- --file ${ETC}/default/slapd \
- --line "SLAPD_CONF=${SLAPD_DIR}/slapd.conf" \
- --state present
-
- require="__line/rm_slapd_services" __line add_slapd_services \
- --file ${ETC}/default/slapd \
- --line "SLAPD_SERVICES=\"${slapd_urls}\"" \
- --state present
- ;;
- *)
- # Nothing to do here, move on.
- ;;
-esac
-
-
-if [ -z "${_skip_letsencrypt_cert}" ]; then
- if [ -f "${__object}/parameter/staging" ]; then
- staging="--staging"
- else
- staging=""
- fi
-
- __letsencrypt_cert "${name}" --admin-email "${admin_email}" \
- --renew-hook "cp ${ETC}/letsencrypt/live/${name}/*.pem ${SLAPD_DIR}/sasl2 && chown -R openldap:openldap ${SLAPD_DIR}/sasl2 && service slapd restart" \
- --automatic-renewal ${staging}
-fi
-
-require="__package/${PKG_MAIN}" __directory ${SLAPD_DIR}/slapd.d --state absent
-
-if [ -z "${_skip_letsencrypt_cert}" ]; then
- require="__package/${PKG_MAIN} __letsencrypt_cert/${name}" \
- __file ${SLAPD_DIR}/slapd.conf --owner ${CONF_OWNER} --group ${CONF_GROUP} --mode 644 \
- --source "${ldapconf}"
-else
- require="__package/${PKG_MAIN}" \
- __file ${SLAPD_DIR}/slapd.conf --owner ${CONF_OWNER} --group ${CONF_GROUP} --mode 644 \
- --source "${ldapconf}"
-fi
-
-# Start slapd.conf
-cat << EOF > "${ldapconf}"
-pidfile ${SLAPD_RUN_DIR}/slapd.pid
-argsfile ${SLAPD_RUN_DIR}/slapd.args
-
-TLSCipherSuite ${tls_cipher_suite}
-TLSCertificateFile ${tls_cert}
-TLSCertificateKeyFile ${tls_privkey}
-TLSCACertificateFile ${tls_ca}
-
-disallow bind_anon
-require bind
-security tls=1
-EOF
-
-# Add specified schemas
-for schema in ${schemas}; do
- echo "include ${SLAPD_DIR}/schema/${schema}.schema" >> "${ldapconf}"
-done
-
-# Add specified modules
-echo "modulepath ${SLAPD_MODULE_PATH}" >> "${ldapconf}"
-for module in ${slapd_modules}; do
- echo "moduleload ${module}.la" >> "${ldapconf}"
-done
-
-# Rest of the config
-cat << EOF >> "${ldapconf}"
-loglevel 1024
-
-database mdb
-maxsize 1073741824
-
-suffix "${suffix}"
-directory ${SLAPD_DATA_DIR}
-rootdn "${manager_dn}"
-rootpw "${manager_password_hash}"
-
-index objectClass eq,pres
-index ou,cn,mail,surname,givenname eq,pres,sub
-index uidNumber,gidNumber,loginShell eq,pres
-index uid,memberUid eq,pres,sub
-index nisMapName,nisMapEntry eq,pres,sub
-index entryCSN,entryUUID eq
-
-serverid ${serverid}
-EOF
-
-# Setup replication
-if [ "${replication}" ]; then
- rid=1;
- for syncrepl in ${syncrepl_hosts}; do
- cat <> "${ldapconf}"
-syncrepl rid=${rid}
- provider=ldap://${syncrepl}
- bindmethod=simple
- starttls=yes
- binddn="${manager_dn}"
- credentials=${syncrepl_credentials}
- searchbase="${syncrepl_searchbase}"
- type=refreshAndPersist
- retry="5 + 5 +"
- interval=00:00:00:05
-EOF
- rid=$((rid + 1))
- done
- cat <> "${ldapconf}"
-mirrormode true
-overlay syncprov
-syncprov-checkpoint 100 5
-syncprov-sessionlog 100
-
-database monitor
-limits dn.exact="${manager_dn}" time=unlimited size=unlimited
-EOF
-fi
diff --git a/cdist/conf/type/__openldap_server/parameter/boolean b/cdist/conf/type/__openldap_server/parameter/boolean
deleted file mode 100644
index 45056fe9..00000000
--- a/cdist/conf/type/__openldap_server/parameter/boolean
+++ /dev/null
@@ -1,2 +0,0 @@
-staging
-replicate
diff --git a/cdist/conf/type/__openldap_server/parameter/default/description b/cdist/conf/type/__openldap_server/parameter/default/description
deleted file mode 100644
index 6d8e37e1..00000000
--- a/cdist/conf/type/__openldap_server/parameter/default/description
+++ /dev/null
@@ -1 +0,0 @@
-Managed by cdist, do not edit manually.
diff --git a/cdist/conf/type/__openldap_server/parameter/default/schema b/cdist/conf/type/__openldap_server/parameter/default/schema
deleted file mode 100644
index 825bdb15..00000000
--- a/cdist/conf/type/__openldap_server/parameter/default/schema
+++ /dev/null
@@ -1,12 +0,0 @@
-corba
-core
-cosine
-duaconf
-dyngroup
-inetorgperson
-java
-misc
-nis
-openldap
-ppolicy
-collective
diff --git a/cdist/conf/type/__openldap_server/parameter/optional b/cdist/conf/type/__openldap_server/parameter/optional
deleted file mode 100644
index a92b9c6e..00000000
--- a/cdist/conf/type/__openldap_server/parameter/optional
+++ /dev/null
@@ -1,8 +0,0 @@
-description
-syncrepl-credentials
-syncrepl-searchbase
-admin-email
-tls-cipher-suite
-tls-cert
-tls-privkey
-tls-ca
\ No newline at end of file
diff --git a/cdist/conf/type/__openldap_server/parameter/optional_multiple b/cdist/conf/type/__openldap_server/parameter/optional_multiple
deleted file mode 100644
index 52a83d5c..00000000
--- a/cdist/conf/type/__openldap_server/parameter/optional_multiple
+++ /dev/null
@@ -1,3 +0,0 @@
-syncrepl-host
-module
-schema
diff --git a/cdist/conf/type/__openldap_server/parameter/required b/cdist/conf/type/__openldap_server/parameter/required
deleted file mode 100644
index ff58158d..00000000
--- a/cdist/conf/type/__openldap_server/parameter/required
+++ /dev/null
@@ -1,5 +0,0 @@
-manager-dn
-manager-password
-manager-password-hash
-serverid
-suffix
diff --git a/cdist/conf/type/__openldap_server/parameter/required_multiple b/cdist/conf/type/__openldap_server/parameter/required_multiple
deleted file mode 100644
index 848b8dc2..00000000
--- a/cdist/conf/type/__openldap_server/parameter/required_multiple
+++ /dev/null
@@ -1 +0,0 @@
-slapd-url
\ No newline at end of file
diff --git a/cdist/conf/type/__openldap_server/singleton b/cdist/conf/type/__openldap_server/singleton
deleted file mode 100644
index e69de29b..00000000
diff --git a/cdist/conf/type/__postgres_database/gencode-remote b/cdist/conf/type/__postgres_database/gencode-remote
index 47e6b97c..61cfa50d 100755
--- a/cdist/conf/type/__postgres_database/gencode-remote
+++ b/cdist/conf/type/__postgres_database/gencode-remote
@@ -41,16 +41,12 @@ if [ "$state_should" != "$state_is" ]; then
present)
owner=""
if [ -f "$__object/parameter/owner" ]; then
- owner="-O \"$(cat "$__object/parameter/owner")\""
+ owner="-O '$(cat "$__object/parameter/owner")'"
fi
- cat << EOF
-su - '$postgres_user' -c "createdb $owner \"$name\""
-EOF
+ echo "su - '$postgres_user' -c \"createdb $owner '$name'\""
;;
absent)
- cat << EOF
-su - '$postgres_user' -c "dropdb \"$name\""
-EOF
+ echo "su - '$postgres_user' -c \"dropdb '$name'\""
;;
esac
fi
diff --git a/cdist/conf/type/__postgres_role/gencode-remote b/cdist/conf/type/__postgres_role/gencode-remote
index 977832c9..fd56e85d 100755
--- a/cdist/conf/type/__postgres_role/gencode-remote
+++ b/cdist/conf/type/__postgres_role/gencode-remote
@@ -53,13 +53,11 @@ case "$state_should" in
done
[ -n "$password" ] && password="PASSWORD '$password'"
- cat << EOF
-su - '$postgres_user' -c "psql postgres -wc 'CREATE ROLE \"$name\" WITH $password $booleans;'"
-EOF
+
+ cmd="CREATE ROLE $name WITH $password $booleans"
+ echo "su - '$postgres_user' -c \"psql postgres -wc \\\"$cmd\\\"\""
;;
absent)
- cat << EOF
-su - '$postgres_user' -c "dropuser \"$name\""
-EOF
+ echo "su - '$postgres_user' -c \"dropuser \\\"$name\\\"\""
;;
esac
diff --git a/cdist/conf/type/__start_on_boot/man.rst b/cdist/conf/type/__start_on_boot/man.rst
index f8afe94b..b7c73ab1 100644
--- a/cdist/conf/type/__start_on_boot/man.rst
+++ b/cdist/conf/type/__start_on_boot/man.rst
@@ -12,7 +12,7 @@ This cdist type allows you to enable or disable stuff to be started
at boot of your operating system.
Warning: This type has not been tested intensively and is not fully
-supported.
+supported (i.e. \*BSD are not implemented).
REQUIRED PARAMETERS
diff --git a/cdist/exec/local.py b/cdist/exec/local.py
index ad6c6e36..f83c85df 100644
--- a/cdist/exec/local.py
+++ b/cdist/exec/local.py
@@ -69,6 +69,7 @@ class Local(object):
self.exec_path = exec_path
self.custom_initial_manifest = initial_manifest
+ self._add_conf_dirs = add_conf_dirs
self.cache_path_pattern = cache_path_pattern
self.quiet_mode = quiet_mode
if configuration:
@@ -83,7 +84,16 @@ class Local(object):
self._init_cache_dir(None)
self._init_paths()
self._init_object_marker()
- self._init_conf_dirs(add_conf_dirs)
+ self._init_conf_dirs()
+
+ @property
+ def dist_conf_dir(self):
+ return os.path.abspath(os.path.join(os.path.dirname(cdist.__file__),
+ "conf"))
+
+ @property
+ def home_dir(self):
+ return cdist.home_dir()
def _init_log(self):
self.log = logging.getLogger(self.target_host[0])
@@ -130,9 +140,28 @@ class Local(object):
# Does not need to be secure - just randomly different from .cdist
self.object_marker_name = tempfile.mktemp(prefix='.cdist-', dir='')
- def _init_conf_dirs(self, add_conf_dirs):
- self.conf_dirs = util.resolve_conf_dirs(
- self.configuration, add_conf_dirs=add_conf_dirs)
+ def _init_conf_dirs(self):
+ self.conf_dirs = []
+
+ self.conf_dirs.append(self.dist_conf_dir)
+
+ # Is the default place for user created explorer, type and manifest
+ if self.home_dir:
+ self.conf_dirs.append(self.home_dir)
+
+ # Add directories defined in the CDIST_PATH environment variable
+ # if 'CDIST_PATH' in os.environ:
+ # cdist_path_dirs = re.split(r'(?.
-#
-#
-
-import cdist
-import cdist.configuration
-import cdist.core
-import cdist.exec.util as util
-import os
-import glob
-import fnmatch
-
-
-class Info(object):
-
- def __init__(self, conf_dirs, args):
- self.conf_dirs = conf_dirs
- self.all = args.all
- self.display_global_explorers = args.global_explorers
- self.display_types = args.types
- if not self.display_global_explorers and not self.display_types:
- self.all = True
- self.fixed_string = args.fixed_string
- self._setup_glob_pattern(args.pattern)
- self.full = args.full
-
- def _setup_glob_pattern(self, pattern):
- if pattern is None:
- self.glob_pattern = '*'
- elif ('?' in pattern or '*' in pattern or '[' in pattern or
- self.fixed_string):
- self.glob_pattern = pattern
- else:
- self.glob_pattern = '*' + pattern + '*'
-
- @classmethod
- def commandline(cls, args):
- conf_dirs = util.resolve_conf_dirs_from_config_and_args(args)
- c = cls(conf_dirs, args)
- c.run()
-
- def _get_global_explorers(self, conf_path):
- rv = []
- global_explorer_path = os.path.join(conf_path, "explorer",
- self.glob_pattern)
- if self.fixed_string:
- if os.path.exists(global_explorer_path):
- rv.append(global_explorer_path)
- else:
- for explorer in glob.glob(global_explorer_path):
- rv.append(explorer)
- return rv
-
- def _should_display_type(self, dir_entry):
- if not dir_entry.is_dir():
- return False
- if self.glob_pattern is None:
- return True
- if self.fixed_string:
- return dir_entry.name == self.glob_pattern
- else:
- return fnmatch.fnmatch(dir_entry.name, self.glob_pattern)
-
- def _get_types(self, conf_path):
- rv = []
- types_path = os.path.join(conf_path, "type")
- if not os.path.exists(types_path):
- return rv
- with os.scandir(types_path) as it:
- for entry in it:
- if self._should_display_type(entry):
- rv.append(entry.path)
- return rv
-
- def _display_details(self, title, details, default_values=None,
- deprecated=None):
- if not details:
- return
- if isinstance(details, bool):
- print("\t{}: {}".format(title, 'yes' if details else 'no'))
- elif isinstance(details, str):
- print("\t{}: {}".format(title, details))
- elif isinstance(details, list):
- dv = dict(default_values) if default_values else {}
- dp = dict(deprecated) if deprecated else {}
-
- print("\t{}:".format(title))
- for x in sorted(details):
- print("\t\t{}".format(x), end='')
- has_default = x in dv
- is_deprecated = x in dp
- need_comma = False
- if has_default or is_deprecated:
- print(" (", end='')
- if has_default:
- print("default: {}".format(dv[x]), end='')
- need_comma = True
- if is_deprecated:
- print("{}deprecated".format(', ' if need_comma else ''),
- end='')
- if has_default or is_deprecated:
- print(")", end='')
- print()
-
- def _display_type_parameters(self, cdist_type):
- self._display_details("required parameters",
- cdist_type.required_parameters,
- default_values=cdist_type.parameter_defaults,
- deprecated=cdist_type.deprecated_parameters)
- self._display_details("required multiple parameters",
- cdist_type.required_multiple_parameters,
- default_values=cdist_type.parameter_defaults,
- deprecated=cdist_type.deprecated_parameters)
- self._display_details("optional parameters",
- cdist_type.optional_parameters,
- default_values=cdist_type.parameter_defaults,
- deprecated=cdist_type.deprecated_parameters)
- self._display_details("optional multiple parameters",
- cdist_type.optional_multiple_parameters,
- default_values=cdist_type.parameter_defaults,
- deprecated=cdist_type.deprecated_parameters)
- self._display_details("boolean parameters",
- cdist_type.boolean_parameters,
- default_values=cdist_type.parameter_defaults,
- deprecated=cdist_type.deprecated_parameters)
-
- def _display_type_characteristics(self, cdist_type):
- characteristics = []
- if cdist_type.is_install:
- characteristics.append('install')
- else:
- characteristics.append('config')
- if cdist_type.is_singleton:
- characteristics.append('singleton')
- if cdist_type.is_nonparallel:
- characteristics.append('nonparallel')
- else:
- characteristics.append('parallel')
- if cdist_type.deprecated is not None:
- characteristics.append('deprecated')
- print("\t{}".format(', '.join(characteristics)))
-
- def _display_type_details(self, type_path):
- dirname, basename = os.path.split(type_path)
- cdist_type = cdist.core.CdistType(dirname, basename)
-
- self._display_type_characteristics(cdist_type)
- self._display_type_parameters(cdist_type)
-
- def run(self):
- rv = []
- for cp in self.conf_dirs:
- conf_path = os.path.expanduser(cp)
- if self.all or self.display_global_explorers:
- rv.extend((x, 'E', ) for x in self._get_global_explorers(
- conf_path))
- if self.all or self.display_types:
- rv.extend((x, 'T', ) for x in self._get_types(conf_path))
- rv = sorted(rv, key=lambda x: x[0])
- for x, t in rv:
- print(x)
- if self.full and t == 'T':
- self._display_type_details(x)
diff --git a/cdist/preos.py b/cdist/preos.py
index bf2a8e60..378071db 100644
--- a/cdist/preos.py
+++ b/cdist/preos.py
@@ -5,9 +5,8 @@ import inspect
import argparse
import cdist
import logging
+import re
import cdist.argparse
-import cdist.configuration
-import cdist.exec.util as util
_PREOS_CALL = "commandline"
@@ -25,6 +24,16 @@ def extend_plugins_path(dirs):
_PLUGINS_PATH.append(preos_dir)
+cdist_home = cdist.home_dir()
+if cdist_home:
+ extend_plugins_path((cdist_home, ))
+x = 'CDIST_PATH'
+if x in os.environ:
+ vals = re.split(r'(?`_.
-It is assumed that you are familiar with *git* ways of signing and verification.
You can also get cdist from `github mirror `_.
@@ -156,27 +157,3 @@ Cdist is available as a python package at
.. code-block:: sh
pip install cdist
-
-Installing from source with signature verification
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you want to install cdist from signed source and verify it, first you need to
-download cdist archive and its detached signature.
-
-Get both, *cdist-x.y.z.tar.gz* and *cdist-x.y.z.tar.gz.asc* from release
-notes of the desired tag *x.y.z* at
-`cdist git repository `_.
-
-Get GPG public key used for signing `here <_static/pgp-key-EFD2AE4EC36B6901.asc>`_
-and import it into GPG.
-
-Now cdist source archive can be verified using `gpg`, e.g. to verify `cdist-6.2.0`:
-
-.. code-block:: sh
-
- $ gpg --verify cdist-6.2.0.tar.gz.asc cdist-6.2.0.targ.gz
- gpg: Signature made Sat Nov 30 23:14:19 2019 CET
- gpg: using RSA key 69767822F3ECC3C349C1EFFFEFD2AE4EC36B6901
- gpg: Good signature from "ungleich GmbH (ungleich FOSS) " [ultimate]
-
-Further steps are the same as for `installing from git `_.
diff --git a/docs/src/man1/cdist.rst b/docs/src/man1/cdist.rst
index 38248821..d6937272 100644
--- a/docs/src/man1/cdist.rst
+++ b/docs/src/man1/cdist.rst
@@ -11,7 +11,7 @@ SYNOPSIS
::
- cdist [-h] [-V] {banner,config,install,inventory,preos,shell,info} ...
+ cdist [-h] [-V] {banner,config,install,inventory,preos,shell} ...
cdist banner [-h] [-l LOGLEVEL] [-q] [-v]
@@ -59,9 +59,7 @@ SYNOPSIS
[-I INVENTORY_DIR] [-a] [-f HOSTFILE] [-H] [-t]
[host [host ...]]
- cdist preos [-h] [-l LOGLEVEL] [-q] [-v] [-c CONF_DIR] [-g CONFIG_FILE]
- [-L]
- [preos] ...
+ cdist preos [-h] [-l LOGLEVEL] [-q] [-v] [-c CONF_DIR] [-L] [preos] ...
cdist preos [preos-options] debian [-h] [-l LOGLEVEL] [-q] [-v] [-b] [-a ARCH] [-B]
[-C] [-c CDIST_PARAMS] [-D DRIVE] [-e REMOTE_EXEC]
@@ -86,8 +84,6 @@ SYNOPSIS
cdist shell [-h] [-l LOGLEVEL] [-q] [-v] [-s SHELL]
- cdist info [-h] [-a] [-c CONF_DIR] [-e] [-F] [-f] [-g CONFIG_FILE] [-t] [pattern]
-
DESCRIPTION
-----------
@@ -466,9 +462,6 @@ Create PreOS.
**-c CONF_DIR, --conf-dir CONF_DIR**
Add configuration directory (one that contains "preos" subdirectory).
-**-g CONFIG_FILE, --config-file CONFIG_FILE**
- Use specified custom configuration file.
-
**-L, --list-preoses**
List available PreOS-es.
@@ -611,39 +604,6 @@ usage. Its primary use is for debugging type parameters.
be POSIX compatible shell.
-INFO
-----
-Display information for cdist (global explorers, types).
-
-**pattern**
- Glob pattern. If it contains special characters('?', '*', '[') then it is
- used as specified, otherwise it is translated to `*pattern*`.
-
-**-h, --help**
- Show help message and exit.
-
-**-a, --all**
- Display all info. This is the default.
-
-**-c CONF_DIR, --conf-dir CONF_DIR**
- Add configuration directory (can be repeated).
-
-**-e, --global-explorers**
- Display info for global explorers.
-
-**-F, --fixed-string**
- Interpret pattern as a fixed string.
-
-**-f, --full**
- Display full details.
-
-**-g CONFIG_FILE, --config-file CONFIG_FILE**
- Use specified custom configuration file.
-
-**-t, --types**
- Display info for types.
-
-
CONFIGURATION
-------------
cdist obtains configuration data from the following sources in the following
@@ -955,5 +915,5 @@ such case and display a warning message. An example of such a case:
COPYING
-------
-Copyright \(C) 2011-2019 Nico Schottelius. Free use of this software is
+Copyright \(C) 2011-2017 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License v3 or later (GPLv3+).