summaryrefslogtreecommitdiffstats
path: root/roles/mise
diff options
context:
space:
mode:
Diffstat (limited to 'roles/mise')
-rw-r--r--roles/mise/meta/argument_specs.yml6
-rw-r--r--roles/mise/meta/main.yml17
-rw-r--r--roles/mise/tasks/install-archlinux.yml6
-rw-r--r--roles/mise/tasks/install-debian.yml26
-rw-r--r--roles/mise/tasks/main.yml15
5 files changed, 70 insertions, 0 deletions
diff --git a/roles/mise/meta/argument_specs.yml b/roles/mise/meta/argument_specs.yml
new file mode 100644
index 00000000..dc826640
--- /dev/null
+++ b/roles/mise/meta/argument_specs.yml
@@ -0,0 +1,6 @@
+---
+argument_specs:
+ main:
+ short_description: "Install mise on Linux distribution"
+ description: "Install mise on Linux distribution"
+ options: {}
diff --git a/roles/mise/meta/main.yml b/roles/mise/meta/main.yml
new file mode 100644
index 00000000..f1c77e7f
--- /dev/null
+++ b/roles/mise/meta/main.yml
@@ -0,0 +1,17 @@
+---
+dependencies: []
+galaxy_info:
+ author: "a14m"
+ description: "Install mise"
+ license: "MIT"
+ min_ansible_version: "2.18"
+ platforms:
+ - name: "ArchLinux"
+ versions:
+ - "all"
+ - name: "Ubuntu"
+ versions:
+ - "noble"
+ - name: "Debian"
+ versions:
+ - "bookworm"
diff --git a/roles/mise/tasks/install-archlinux.yml b/roles/mise/tasks/install-archlinux.yml
new file mode 100644
index 00000000..5e545732
--- /dev/null
+++ b/roles/mise/tasks/install-archlinux.yml
@@ -0,0 +1,6 @@
+---
+- name: "Ensure mise is installed"
+ become: true
+ ansible.builtin.package:
+ name: "mise"
+ state: "present"
diff --git a/roles/mise/tasks/install-debian.yml b/roles/mise/tasks/install-debian.yml
new file mode 100644
index 00000000..e0f0283e
--- /dev/null
+++ b/roles/mise/tasks/install-debian.yml
@@ -0,0 +1,26 @@
+---
+- name: "Download mise GPG key"
+ become: true
+ ansible.builtin.get_url:
+ url: "https://mise.jdx.dev/gpg-key.pub"
+ dest: "/etc/apt/trusted.gpg.d/mise.asc"
+ mode: "0644"
+
+- name: "Add mise repository"
+ become: true
+ ansible.builtin.apt_repository:
+ repo: "deb [signed-by=/etc/apt/trusted.gpg.d/mise.asc] https://mise.jdx.dev/deb stable main"
+ state: "present"
+ filename: "mise"
+
+- name: "Update package cache"
+ become: true
+ ansible.builtin.apt:
+ update_cache: true
+ changed_when: false
+
+- name: "Ensure mise is installed"
+ become: true
+ ansible.builtin.package:
+ name: "mise"
+ state: "present"
diff --git a/roles/mise/tasks/main.yml b/roles/mise/tasks/main.yml
new file mode 100644
index 00000000..a8ff3522
--- /dev/null
+++ b/roles/mise/tasks/main.yml
@@ -0,0 +1,15 @@
+---
+- name: "Include OS-specific tasks"
+ ansible.builtin.include_tasks: "install-{{ ansible_facts['os_family'] | lower }}.yml"
+
+- name: "Add mise activation to bash"
+ ansible.builtin.blockinfile:
+ path: "{{ ansible_facts['env']['HOME'] }}/.bashrc"
+ state: "present"
+ prepend_newline: true
+ append_newline: true
+ marker: "# ==== {mark} ANSIBLE MISE CONFIG"
+ block: |
+ if command -v mise 1>/dev/null 2>&1; then
+ eval "$(mise activate bash)"
+ fi