summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-02-22 18:56:01 +0100
committerAhmed Abdelhalim <[email protected]>2026-02-22 18:56:01 +0100
commit23d67bbb70291bf3046c57c6768dc1727b1077b2 (patch)
tree95e9f77a898b586de421e451c97a0439dce45d12
parent7b8b6a2af4adeba5b2005e449195c1f4e8a136c6 (diff)
Add gum role for beautiful CLIs
Co-Authored-By: claude.ai
-rw-r--r--molecule/archlinux-gnome/converge.yml1
-rw-r--r--molecule/archlinux/converge.yml1
-rw-r--r--molecule/debian/converge.yml1
-rw-r--r--molecule/raspberrypi/converge.yml1
-rw-r--r--molecule/ubuntu/converge.yml1
-rw-r--r--roles/gum/meta/argument_specs.yml6
-rw-r--r--roles/gum/meta/main.yml18
-rw-r--r--roles/gum/tasks/main.yml11
8 files changed, 40 insertions, 0 deletions
diff --git a/molecule/archlinux-gnome/converge.yml b/molecule/archlinux-gnome/converge.yml
index 9fdde413..ab22b57a 100644
--- a/molecule/archlinux-gnome/converge.yml
+++ b/molecule/archlinux-gnome/converge.yml
@@ -71,6 +71,7 @@
- role: "gpg"
- role: "btop"
- role: "zoxide"
+ - role: "gum"
- role: "git"
- role: "git-crypt"
- role: "dotfiles"
diff --git a/molecule/archlinux/converge.yml b/molecule/archlinux/converge.yml
index 1e333410..ee80aea4 100644
--- a/molecule/archlinux/converge.yml
+++ b/molecule/archlinux/converge.yml
@@ -71,6 +71,7 @@
- role: "gpg"
- role: "btop"
- role: "zoxide"
+ - role: "gum"
- role: "git"
- role: "git-crypt"
- role: "dotfiles"
diff --git a/molecule/debian/converge.yml b/molecule/debian/converge.yml
index e00c4e7f..0b9c8d70 100644
--- a/molecule/debian/converge.yml
+++ b/molecule/debian/converge.yml
@@ -81,6 +81,7 @@
- role: "rust"
- role: "nodejs"
- role: "zoxide"
+ - role: "gum"
- role: "usbutils"
- role: "docker"
- role: "podman"
diff --git a/molecule/raspberrypi/converge.yml b/molecule/raspberrypi/converge.yml
index 463678e3..f0e4733e 100644
--- a/molecule/raspberrypi/converge.yml
+++ b/molecule/raspberrypi/converge.yml
@@ -77,6 +77,7 @@
- role: "rust"
- role: "nodejs"
- role: "zoxide"
+ - role: "gum"
- role: "usbutils"
- role: "wireguard"
- role: "gateway"
diff --git a/molecule/ubuntu/converge.yml b/molecule/ubuntu/converge.yml
index 45389301..c632116c 100644
--- a/molecule/ubuntu/converge.yml
+++ b/molecule/ubuntu/converge.yml
@@ -70,6 +70,7 @@
- role: "rust"
- role: "nodejs"
- role: "zoxide"
+ - role: "gum"
- role: "usbutils"
- role: "docker"
- role: "podman"
diff --git a/roles/gum/meta/argument_specs.yml b/roles/gum/meta/argument_specs.yml
new file mode 100644
index 00000000..494333b5
--- /dev/null
+++ b/roles/gum/meta/argument_specs.yml
@@ -0,0 +1,6 @@
+---
+argument_specs:
+ main:
+ short_description: "Install gum on Linux distributions"
+ description: "Install gum (charmbracelet) via Go on Linux distributions"
+ options: {}
diff --git a/roles/gum/meta/main.yml b/roles/gum/meta/main.yml
new file mode 100644
index 00000000..6cd0c978
--- /dev/null
+++ b/roles/gum/meta/main.yml
@@ -0,0 +1,18 @@
+---
+dependencies:
+ - role: "go"
+galaxy_info:
+ author: "a14m"
+ description: "Install gum (charmbracelet) via Go on Linux distributions"
+ license: "MIT"
+ min_ansible_version: "2.18"
+ platforms:
+ - name: "ArchLinux"
+ versions:
+ - "all"
+ - name: "Ubuntu"
+ versions:
+ - "noble"
+ - name: "Debian"
+ versions:
+ - "bookworm"
diff --git a/roles/gum/tasks/main.yml b/roles/gum/tasks/main.yml
new file mode 100644
index 00000000..6398a40f
--- /dev/null
+++ b/roles/gum/tasks/main.yml
@@ -0,0 +1,11 @@
+---
+- name: "Check if gum is installed"
+ ansible.builtin.stat:
+ path: "{{ ansible_facts['env']['HOME'] }}/go/bin/gum"
+ register: gum_binary
+
+- name: "Install gum via go"
+ ansible.builtin.command:
+ cmd: "/usr/local/go/bin/go install github.com/charmbracelet/gum@latest"
+ when: not gum_binary.stat.exists
+ changed_when: true