From f0a77a9c5a070bd503731ceb3d48a44b71b63dc1 Mon Sep 17 00:00:00 2001 From: Paul Lecuq Date: Wed, 19 Feb 2025 18:36:25 +0100 Subject: [PATCH] added ripgrep state --- states/ripgrep/defaults.yaml | 9 +++++++++ states/ripgrep/init.sls | 3 +++ states/ripgrep/install.sls | 23 +++++++++++++++++++++++ states/ripgrep/kernelmap.yaml | 3 +++ states/ripgrep/map.jinja | 14 ++++++++++++++ states/ripgrep/osarchmap.yaml | 24 ++++++++++++++++++++++++ 6 files changed, 76 insertions(+) create mode 100644 states/ripgrep/defaults.yaml create mode 100644 states/ripgrep/init.sls create mode 100644 states/ripgrep/install.sls create mode 100644 states/ripgrep/kernelmap.yaml create mode 100644 states/ripgrep/map.jinja create mode 100644 states/ripgrep/osarchmap.yaml diff --git a/states/ripgrep/defaults.yaml b/states/ripgrep/defaults.yaml new file mode 100644 index 0000000..5b30bb2 --- /dev/null +++ b/states/ripgrep/defaults.yaml @@ -0,0 +1,9 @@ +--- +ripgrep: + enabled: true + install_dir: /usr/local/apps + release_dir: /usr/local/apps/releases + mirror: https://github.com/BurntSushi/ripgrep/releases/download + version: 14.1.1 + os: linux + arch: amd64 diff --git a/states/ripgrep/init.sls b/states/ripgrep/init.sls new file mode 100644 index 0000000..e39dc86 --- /dev/null +++ b/states/ripgrep/init.sls @@ -0,0 +1,3 @@ +--- +include: + - .install diff --git a/states/ripgrep/install.sls b/states/ripgrep/install.sls new file mode 100644 index 0000000..a546434 --- /dev/null +++ b/states/ripgrep/install.sls @@ -0,0 +1,23 @@ +--- +{%- from "ripgrep/map.jinja" import ripgrep with context %} +ripgrep-archive-extract: + archive.extracted: + - name: {{ ripgrep.release_dir }}/ripgrep-{{ ripgrep.version }} + - source: {{ ripgrep.mirror }}/{{ ripgrep.version }}/ripgrep-{{ ripgrep.version }}-{{ ripgrep.arch }}-unknown-{{ ripgrep.os|lower }}-musl.tar.gz + - skip_verify: true + - enforce_toplevel: false + - if_missing: {{ ripgrep.release_dir }}/ripgrep-{{ ripgrep.version }}/ripgrep + +ripgrep-binary-symlink: + file.symlink: + - name: /usr/local/bin/ripgrep + - target: {{ ripgrep.release_dir }}/ripgrep-v{{ ripgrep.version }}-{{ ripgrep.os }}-{{ ripgrep.arch }}/ripgrep + - force: true + - require: + - archive: ripgrep-archive-extract + +ripgrep-cleanup: + software.cleanup: + - name: ripgrep + - path: {{ ripgrep.release_dir }} + - version: "v{{ ripgrep.version }}" diff --git a/states/ripgrep/kernelmap.yaml b/states/ripgrep/kernelmap.yaml new file mode 100644 index 0000000..40943f2 --- /dev/null +++ b/states/ripgrep/kernelmap.yaml @@ -0,0 +1,3 @@ +--- +Linux: + os: "linux" diff --git a/states/ripgrep/map.jinja b/states/ripgrep/map.jinja new file mode 100644 index 0000000..cebcea0 --- /dev/null +++ b/states/ripgrep/map.jinja @@ -0,0 +1,14 @@ +{%- import_yaml "ripgrep/defaults.yaml" as default_settings -%} + +{%- import_yaml "ripgrep/kernelmap.yaml" as kernelmap -%} +{%- import_yaml "ripgrep/osarchmap.yaml" as osarchmap -%} + +{%- set defaults = salt['grains.filter_by'](default_settings, + default='ripgrep', + merge=salt['grains.filter_by'](osarchmap, grain='osarch', + merge=salt['grains.filter_by'](kernelmap, grain='kernel') + ) + ) +-%} + +{%- set ripgrep = salt['pillar.get']('ripgrep', default=defaults, merge=True) -%} \ No newline at end of file diff --git a/states/ripgrep/osarchmap.yaml b/states/ripgrep/osarchmap.yaml new file mode 100644 index 0000000..08be675 --- /dev/null +++ b/states/ripgrep/osarchmap.yaml @@ -0,0 +1,24 @@ +--- +amd64: + arch: "amd64" + +x86_64: + arch: "amd64" + +386: + arch: "386" + +arm64: + arch: "aarch64" + +aarch64: + arch: "aarch64" + +armv6l: + arch: "arm" + +armv7l: + arch: "arm" + +armhf: + arch: "arm"