From 4c106752f1cc6fb381178def90b9fa47da96b610 Mon Sep 17 00:00:00 2001 From: Darko Poljak Date: Fri, 22 Jul 2016 08:12:18 +0200 Subject: [PATCH 1/4] Add new types, __keyboard and __locale_system, contributed by Carlos Ortigoza. --- cdist/conf/type/__keyboard/man.rst | 37 ++++++++++++++ cdist/conf/type/__keyboard/manifest | 50 +++++++++++++++++++ cdist/conf/type/__keyboard/parameter/required | 1 + cdist/conf/type/__keyboard/singleton | 0 cdist/conf/type/__locale_system/man.rst | 45 +++++++++++++++++ cdist/conf/type/__locale_system/manifest | 43 ++++++++++++++++ .../__locale_system/parameter/default/locale | 1 + .../type/__locale_system/parameter/optional | 1 + cdist/conf/type/__locale_system/singleton | 0 9 files changed, 178 insertions(+) create mode 100644 cdist/conf/type/__keyboard/man.rst create mode 100644 cdist/conf/type/__keyboard/manifest create mode 100644 cdist/conf/type/__keyboard/parameter/required create mode 100644 cdist/conf/type/__keyboard/singleton create mode 100644 cdist/conf/type/__locale_system/man.rst create mode 100644 cdist/conf/type/__locale_system/manifest create mode 100644 cdist/conf/type/__locale_system/parameter/default/locale create mode 100644 cdist/conf/type/__locale_system/parameter/optional create mode 100644 cdist/conf/type/__locale_system/singleton diff --git a/cdist/conf/type/__keyboard/man.rst b/cdist/conf/type/__keyboard/man.rst new file mode 100644 index 00000000..0eb4cde9 --- /dev/null +++ b/cdist/conf/type/__keyboard/man.rst @@ -0,0 +1,37 @@ +cdist-type__keyboard(7) +======================= + +NAME +---- +cdit-type__keyboard - Set keyboard layout + + +DESCRIPTION +----------- +This cdist type allows you to modify keyboard layout. + + +REQUIRED PARAMETERS +------------------- +type + Any valid type, for example "us" + + +EXAMPLES +-------- + +.. code-block:: sh + + # Set keyboard type to "us" + __keyboard --type "us" + + +AUTHORS +------- +Carlos Ortigoza + + +COPYING +------- +Copyright \(C) 2016 Carlos Ortigoza. Free use of this software is +granted under the terms of the GNU General Public License v3 or later (GPLv3+). diff --git a/cdist/conf/type/__keyboard/manifest b/cdist/conf/type/__keyboard/manifest new file mode 100644 index 00000000..3bfddf0b --- /dev/null +++ b/cdist/conf/type/__keyboard/manifest @@ -0,0 +1,50 @@ +#!/bin/sh +# +# Carlos Ortigoza (carlos.ortigoza at ungleich.ch) +# +# 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 . +# +# +# Configure keyboard type by modifying /etc/sysconfig/keyboard file. +# + +os=$(cat "$__global/explorer/os") +keyboard_type="$(cat "$__object/parameter/type")" + +case "$os" in + centos) + __file /etc/sysconfig/keyboard \ + --owner root --group root --mode 644 \ + --state exists + + require="__file/etc/sysconfig/keyboard" \ + __key_value KEYTABLE \ + --file /etc/sysconfig/keyboard \ + --delimiter '=' \ + --value "\"$keyboard_type\"" + + require="__file/etc/sysconfig/keyboard" \ + __key_value LAYOUT \ + --file /etc/sysconfig/keyboard \ + --delimiter '=' \ + --value "\"$keyboard_type\"" + ;; + *) + echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 + echo "Please contribute an implementation for it if you can." >&2 + exit 1 + ;; +esac diff --git a/cdist/conf/type/__keyboard/parameter/required b/cdist/conf/type/__keyboard/parameter/required new file mode 100644 index 00000000..c3dc0520 --- /dev/null +++ b/cdist/conf/type/__keyboard/parameter/required @@ -0,0 +1 @@ +type \ No newline at end of file diff --git a/cdist/conf/type/__keyboard/singleton b/cdist/conf/type/__keyboard/singleton new file mode 100644 index 00000000..e69de29b diff --git a/cdist/conf/type/__locale_system/man.rst b/cdist/conf/type/__locale_system/man.rst new file mode 100644 index 00000000..8eaa5868 --- /dev/null +++ b/cdist/conf/type/__locale_system/man.rst @@ -0,0 +1,45 @@ +cdist-type__locale_system(7) +============================ + +NAME +---- +cdit-type__locale_system - Set system-wide locale + + +DESCRIPTION +----------- +This cdist type allows you to modify system-wide locale. + + +OPTIONAL PARAMETERS +------------------- +locale + Any valid locale, defaults to en_US.UTF-8 + + +EXAMPLES +-------- + +.. code-block:: sh + + # Set system locale to en_US.UTF-8 + __locale_system + + # Same as above, but more explicit + __locale_system --locale en_US.UTF-8 + + +SEE ALSO +-------- +:strong:`locale`\ (1), :strong:`localedef`\ (1) + + +AUTHORS +------- +Carlos Ortigoza + + +COPYING +------- +Copyright \(C) 2016 Carlos Ortigoza. Free use of this software is +granted under the terms of the GNU General Public License v3 or later (GPLv3+). diff --git a/cdist/conf/type/__locale_system/manifest b/cdist/conf/type/__locale_system/manifest new file mode 100644 index 00000000..065b33c3 --- /dev/null +++ b/cdist/conf/type/__locale_system/manifest @@ -0,0 +1,43 @@ +#!/bin/sh +# +# Carlos Ortigoza (carlos.ortigoza at ungleich.ch) +# +# 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 . +# +# +# Configure system-wide locale by modifying i18n file. +# + +os=$(cat "$__global/explorer/os") +locale="$(cat "$__object/parameter/locale")" + +case "$os" in + centos) + __file /etc/sysconfig/i18n \ + --owner root --group root --mode 644 \ + --state exists + require="__file/etc/sysconfig/i18n" \ + __key_value LANG \ + --file /etc/sysconfig/i18n \ + --delimiter '=' \ + --value "\"$locale\"" + ;; + *) + echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 + echo "Please contribute an implementation for it if you can." >&2 + exit 1 + ;; +esac diff --git a/cdist/conf/type/__locale_system/parameter/default/locale b/cdist/conf/type/__locale_system/parameter/default/locale new file mode 100644 index 00000000..927508f3 --- /dev/null +++ b/cdist/conf/type/__locale_system/parameter/default/locale @@ -0,0 +1 @@ +en_US.UTF-8 diff --git a/cdist/conf/type/__locale_system/parameter/optional b/cdist/conf/type/__locale_system/parameter/optional new file mode 100644 index 00000000..1fc74d6c --- /dev/null +++ b/cdist/conf/type/__locale_system/parameter/optional @@ -0,0 +1 @@ +locale \ No newline at end of file diff --git a/cdist/conf/type/__locale_system/singleton b/cdist/conf/type/__locale_system/singleton new file mode 100644 index 00000000..e69de29b From 099893d11beb151c9614f21e19f71bd721a3f1aa Mon Sep 17 00:00:00 2001 From: Darko Poljak Date: Sat, 23 Jul 2016 16:19:34 +0200 Subject: [PATCH 2/4] Update changelog. --- docs/changelog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/changelog b/docs/changelog index d85af785..218182dc 100644 --- a/docs/changelog +++ b/docs/changelog @@ -1,6 +1,10 @@ Changelog --------- +next: + * New type: __keyboard: Set keyboard layout (Carlos Ortigoza) + * New type: __locale_system: Set system-wide locale (Carlos Ortigoza) + 4.2.1: 2016-07-18 * Build: Fix signed release (Darko Poljak) * Build: Fix building docs (Darko Poljak) From b400ae9c949617317c5cf465f6cc362d99bb2c61 Mon Sep 17 00:00:00 2001 From: Darko Poljak Date: Wed, 10 Aug 2016 18:34:49 +0200 Subject: [PATCH 3/4] Separate __keyboard type. --- cdist/conf/type/__locale_system/parameter/default/locale | 1 - cdist/conf/type/__locale_system/singleton | 0 docs/changelog | 8 ++------ 3 files changed, 2 insertions(+), 7 deletions(-) delete mode 100644 cdist/conf/type/__locale_system/parameter/default/locale delete mode 100644 cdist/conf/type/__locale_system/singleton diff --git a/cdist/conf/type/__locale_system/parameter/default/locale b/cdist/conf/type/__locale_system/parameter/default/locale deleted file mode 100644 index 927508f3..00000000 --- a/cdist/conf/type/__locale_system/parameter/default/locale +++ /dev/null @@ -1 +0,0 @@ -en_US.UTF-8 diff --git a/cdist/conf/type/__locale_system/singleton b/cdist/conf/type/__locale_system/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/changelog b/docs/changelog index 054910c1..e21d14a5 100644 --- a/docs/changelog +++ b/docs/changelog @@ -1,15 +1,11 @@ Changelog --------- next: - * New type __filesystem: manage filesystems on devices ( Daniel Heule ) - + * New type: __keyboard: Set keyboard layout (Carlos Ortigoza) + * New type __filesystem: manage filesystems on devices (Daniel Heule) * New type: __locale_system (Steven Armstrong, Carlos Ortigoza, Nico Schottelius) * New type: __sysctl (Steven Armstrong) -next: - * New type: __keyboard: Set keyboard layout (Carlos Ortigoza) - * New type: __locale_system: Set system-wide locale (Carlos Ortigoza) - 4.2.2: 2016-07-26 * Core: Fix ssh ControlPath socket file error (Darko Poljak) * Documentation: Update cdist man page and cdist-references (Darko Poljak) From d82bd52b04fb76dde32e9eba161b7fd9c6528771 Mon Sep 17 00:00:00 2001 From: Darko Poljak Date: Wed, 10 Aug 2016 18:37:40 +0200 Subject: [PATCH 4/4] Fix no newline at the end of file. --- cdist/conf/type/__keyboard/parameter/required | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cdist/conf/type/__keyboard/parameter/required b/cdist/conf/type/__keyboard/parameter/required index c3dc0520..aa80e646 100644 --- a/cdist/conf/type/__keyboard/parameter/required +++ b/cdist/conf/type/__keyboard/parameter/required @@ -1 +1 @@ -type \ No newline at end of file +type