From 62636c39628a40e9db07572887b7f61356c6c8c4 Mon Sep 17 00:00:00 2001 From: Thomas H Jones II Date: Fri, 10 Apr 2026 09:14:02 -0400 Subject: [PATCH 01/36] Add base/template content --- notepad-plusplus/_mapdata/_mapdata.jinja | 13 + notepad-plusplus/_mapdata/init.sls | 22 ++ notepad-plusplus/clean.sls | 8 + notepad-plusplus/config/clean.sls | 16 + notepad-plusplus/config/file.sls | 28 ++ notepad-plusplus/config/init.sls | 5 + notepad-plusplus/files/default/example.tmpl | 6 + .../files/default/example.tmpl.jinja | 11 + notepad-plusplus/init.sls | 8 + notepad-plusplus/libmapstack.jinja | 315 ++++++++++++++++++ notepad-plusplus/libmatchers.jinja | 222 ++++++++++++ notepad-plusplus/libsaltcli.jinja | 18 + notepad-plusplus/libtofs.jinja | 115 +++++++ notepad-plusplus/map.jinja | 66 ++++ notepad-plusplus/package/clean.sls | 16 + notepad-plusplus/package/init.sls | 5 + notepad-plusplus/package/install.sls | 23 ++ notepad-plusplus/parameters/defaults.yaml | 10 + notepad-plusplus/parameters/os/Fedora.yaml | 19 ++ .../parameters/os/MacOS.yaml.jinja | 20 ++ notepad-plusplus/parameters/os/Ubuntu.yaml | 18 + .../parameters/os_family/Arch.yaml | 19 ++ .../parameters/os_family/Debian.yaml | 18 + .../parameters/os_family/FreeBSD.yaml | 16 + .../parameters/os_family/Gentoo.yaml | 17 + .../parameters/os_family/OpenBSD.yaml | 16 + .../parameters/os_family/RedHat.yaml | 18 + .../parameters/os_family/Suse.yaml | 17 + notepad-plusplus/parameters/osarch/386.yaml | 16 + notepad-plusplus/parameters/osarch/amd64.yaml | 16 + notepad-plusplus/parameters/osarch/arm64.yaml | 16 + .../parameters/osarch/armv6l.yaml | 16 + .../parameters/osarch/armv7l.yaml | 16 + .../parameters/osarch/ppc64le.yaml | 16 + notepad-plusplus/parameters/osarch/s390x.yaml | 16 + .../parameters/osarch/x86_64.yaml | 16 + .../parameters/osfinger/CentOS-6.yaml | 18 + .../parameters/osfinger/Ubuntu-18.04.yaml | 16 + notepad-plusplus/service/clean.sls | 11 + notepad-plusplus/service/init.sls | 5 + notepad-plusplus/service/running.sls | 17 + notepad-plusplus/subcomponent/clean.sls | 5 + .../subcomponent/config/clean.sls | 16 + notepad-plusplus/subcomponent/config/file.sls | 27 ++ .../files/default/subcomponent-example.tmpl | 6 + .../default/subcomponent-example.tmpl.jinja | 6 + notepad-plusplus/subcomponent/config/init.sls | 5 + notepad-plusplus/subcomponent/init.sls | 5 + 48 files changed, 1350 insertions(+) create mode 100644 notepad-plusplus/_mapdata/_mapdata.jinja create mode 100644 notepad-plusplus/_mapdata/init.sls create mode 100644 notepad-plusplus/clean.sls create mode 100644 notepad-plusplus/config/clean.sls create mode 100644 notepad-plusplus/config/file.sls create mode 100644 notepad-plusplus/config/init.sls create mode 100644 notepad-plusplus/files/default/example.tmpl create mode 100644 notepad-plusplus/files/default/example.tmpl.jinja create mode 100644 notepad-plusplus/init.sls create mode 100644 notepad-plusplus/libmapstack.jinja create mode 100644 notepad-plusplus/libmatchers.jinja create mode 100644 notepad-plusplus/libsaltcli.jinja create mode 100644 notepad-plusplus/libtofs.jinja create mode 100644 notepad-plusplus/map.jinja create mode 100644 notepad-plusplus/package/clean.sls create mode 100644 notepad-plusplus/package/init.sls create mode 100644 notepad-plusplus/package/install.sls create mode 100644 notepad-plusplus/parameters/defaults.yaml create mode 100644 notepad-plusplus/parameters/os/Fedora.yaml create mode 100644 notepad-plusplus/parameters/os/MacOS.yaml.jinja create mode 100644 notepad-plusplus/parameters/os/Ubuntu.yaml create mode 100644 notepad-plusplus/parameters/os_family/Arch.yaml create mode 100644 notepad-plusplus/parameters/os_family/Debian.yaml create mode 100644 notepad-plusplus/parameters/os_family/FreeBSD.yaml create mode 100644 notepad-plusplus/parameters/os_family/Gentoo.yaml create mode 100644 notepad-plusplus/parameters/os_family/OpenBSD.yaml create mode 100644 notepad-plusplus/parameters/os_family/RedHat.yaml create mode 100644 notepad-plusplus/parameters/os_family/Suse.yaml create mode 100644 notepad-plusplus/parameters/osarch/386.yaml create mode 100644 notepad-plusplus/parameters/osarch/amd64.yaml create mode 100644 notepad-plusplus/parameters/osarch/arm64.yaml create mode 100644 notepad-plusplus/parameters/osarch/armv6l.yaml create mode 100644 notepad-plusplus/parameters/osarch/armv7l.yaml create mode 100644 notepad-plusplus/parameters/osarch/ppc64le.yaml create mode 100644 notepad-plusplus/parameters/osarch/s390x.yaml create mode 100644 notepad-plusplus/parameters/osarch/x86_64.yaml create mode 100644 notepad-plusplus/parameters/osfinger/CentOS-6.yaml create mode 100644 notepad-plusplus/parameters/osfinger/Ubuntu-18.04.yaml create mode 100644 notepad-plusplus/service/clean.sls create mode 100644 notepad-plusplus/service/init.sls create mode 100644 notepad-plusplus/service/running.sls create mode 100644 notepad-plusplus/subcomponent/clean.sls create mode 100644 notepad-plusplus/subcomponent/config/clean.sls create mode 100644 notepad-plusplus/subcomponent/config/file.sls create mode 100644 notepad-plusplus/subcomponent/config/files/default/subcomponent-example.tmpl create mode 100644 notepad-plusplus/subcomponent/config/files/default/subcomponent-example.tmpl.jinja create mode 100644 notepad-plusplus/subcomponent/config/init.sls create mode 100644 notepad-plusplus/subcomponent/init.sls diff --git a/notepad-plusplus/_mapdata/_mapdata.jinja b/notepad-plusplus/_mapdata/_mapdata.jinja new file mode 100644 index 0000000..aa9649c --- /dev/null +++ b/notepad-plusplus/_mapdata/_mapdata.jinja @@ -0,0 +1,13 @@ +# yamllint disable rule:indentation rule:line-length +# {{ grains.get("osfinger", grains.os) }} +--- +{#- use salt.slsutil.serialize to avoid encoding errors on some platforms #} +{{ salt["slsutil.serialize"]( + "yaml", + map, + default_flow_style=False, + allow_unicode=True, + ) + | regex_replace("^\s+'$", "'", multiline=True) + | trim +}} diff --git a/notepad-plusplus/_mapdata/init.sls b/notepad-plusplus/_mapdata/init.sls new file mode 100644 index 0000000..3529a8d --- /dev/null +++ b/notepad-plusplus/_mapdata/init.sls @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls +--- +{#- Get the `tplroot` from `tpldir` #} +{%- set tplroot = tpldir.split("/")[0] %} +{%- from tplroot ~ "/map.jinja" import mapdata with context %} + +{%- set _mapdata = { + "values": mapdata, + } %} +{%- do salt["log.debug"]("### MAP.JINJA DUMP ###\n" ~ _mapdata | yaml(False)) %} + +{%- set output_dir = "/temp" if grains.os_family == "Windows" else "/tmp" %} +{%- set output_file = output_dir ~ "/salt_mapdata_dump.yaml" %} + +{{ tplroot }}-mapdata-dump: + file.managed: + - name: {{ output_file }} + - source: salt://{{ tplroot }}/_mapdata/_mapdata.jinja + - template: jinja + - context: + map: {{ _mapdata | yaml }} diff --git a/notepad-plusplus/clean.sls b/notepad-plusplus/clean.sls new file mode 100644 index 0000000..9e45fb4 --- /dev/null +++ b/notepad-plusplus/clean.sls @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +include: + - .subcomponent.clean + - .service.clean + - .config.clean + - .package.clean diff --git a/notepad-plusplus/config/clean.sls b/notepad-plusplus/config/clean.sls new file mode 100644 index 0000000..fe9f4e8 --- /dev/null +++ b/notepad-plusplus/config/clean.sls @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +{#- Get the `tplroot` from `tpldir` #} +{%- set tplroot = tpldir.split('/')[0] %} +{%- set sls_service_clean = tplroot ~ '.service.clean' %} +{%- from tplroot ~ "/map.jinja" import mapdata as notepad__plusplus with context %} + +include: + - {{ sls_service_clean }} + +notepad-plusplus-config-clean-file-absent: + file.absent: + - name: {{ notepad__plusplus.config }} + - require: + - sls: {{ sls_service_clean }} diff --git a/notepad-plusplus/config/file.sls b/notepad-plusplus/config/file.sls new file mode 100644 index 0000000..198e50b --- /dev/null +++ b/notepad-plusplus/config/file.sls @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +{#- Get the `tplroot` from `tpldir` #} +{%- set tplroot = tpldir.split('/')[0] %} +{%- set sls_package_install = tplroot ~ '.package.install' %} +{%- from tplroot ~ "/map.jinja" import mapdata as notepad__plusplus with context %} +{%- from tplroot ~ "/libtofs.jinja" import files_switch with context %} + +include: + - {{ sls_package_install }} + +notepad-plusplus-config-file-file-managed: + file.managed: + - name: {{ notepad__plusplus.config }} + - source: {{ files_switch(['example.tmpl'], + lookup='notepad-plusplus-config-file-file-managed' + ) + }} + - mode: 644 + - user: root + - group: {{ notepad__plusplus.rootgroup }} + - makedirs: True + - template: jinja + - require: + - sls: {{ sls_package_install }} + - context: + notepad__plusplus: {{ notepad__plusplus | json }} diff --git a/notepad-plusplus/config/init.sls b/notepad-plusplus/config/init.sls new file mode 100644 index 0000000..465ddfe --- /dev/null +++ b/notepad-plusplus/config/init.sls @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +include: + - .file diff --git a/notepad-plusplus/files/default/example.tmpl b/notepad-plusplus/files/default/example.tmpl new file mode 100644 index 0000000..2c9c60f --- /dev/null +++ b/notepad-plusplus/files/default/example.tmpl @@ -0,0 +1,6 @@ +######################################################################## +# File managed by Salt at <{{ source }}>. +# Your changes will be overwritten. +######################################################################## + +This is an example file from SaltStack template-formula. diff --git a/notepad-plusplus/files/default/example.tmpl.jinja b/notepad-plusplus/files/default/example.tmpl.jinja new file mode 100644 index 0000000..1b35e46 --- /dev/null +++ b/notepad-plusplus/files/default/example.tmpl.jinja @@ -0,0 +1,11 @@ +######################################################################## +# File managed by Salt at <{{ source }}>. +# Your changes will be overwritten. +######################################################################## + +This is another example file from SaltStack template-formula. + +# This is here for testing purposes +{{ notepad__plusplus | json }} + +winner of the merge: {{ notepad__plusplus['winner'] }} diff --git a/notepad-plusplus/init.sls b/notepad-plusplus/init.sls new file mode 100644 index 0000000..275d1fc --- /dev/null +++ b/notepad-plusplus/init.sls @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls + +include: + - .package + - .config + - .service + - .subcomponent diff --git a/notepad-plusplus/libmapstack.jinja b/notepad-plusplus/libmapstack.jinja new file mode 100644 index 0000000..8f54ef3 --- /dev/null +++ b/notepad-plusplus/libmapstack.jinja @@ -0,0 +1,315 @@ +{#- -*- coding: utf-8 -*- #} +{#- vim: ft=jinja #} + +{#- Get the `tplroot` from `tpldir` #} +{%- set tplroot = tpldir.split("/")[0] %} +{%- from tplroot ~ "/libmatchers.jinja" import parse_matchers, query_map with context %} + +{%- set _default_config_dirs = [ + "parameters/", + tplroot ~ "/parameters" + ] %} + +{%- macro mapstack( + matchers, + defaults=None, + dirs=_default_config_dirs, + log_prefix="libmapstack: " + ) %} +{#- + Load configuration in the order of `matchers` and merge + successively the values with `defaults`. + + The `matchers` are processed using `libmatchers.jinja` to select + the configuration sources from where the values are loaded. + + Parameters: + + - `matchers`: list of matchers in the form + `[[: