From ff9a8cea4ae57e8b58fc006f6f801418903c408c Mon Sep 17 00:00:00 2001
From: Vladimir Still <git@vstill.eu>
Date: Fri, 11 Feb 2022 12:46:24 +0100
Subject: [PATCH] ansible: Multiple changes in ghc_deb

---
 ansible/roles/ghc_deb/defaults/main.yml |  1 +
 ansible/roles/ghc_deb/tasks/main.yml    | 59 ++++++++++++++-----------
 2 files changed, 33 insertions(+), 27 deletions(-)
 create mode 100644 ansible/roles/ghc_deb/defaults/main.yml

diff --git a/ansible/roles/ghc_deb/defaults/main.yml b/ansible/roles/ghc_deb/defaults/main.yml
new file mode 100644
index 0000000..7789e39
--- /dev/null
+++ b/ansible/roles/ghc_deb/defaults/main.yml
@@ -0,0 +1 @@
+auto_install_ghc: true
diff --git a/ansible/roles/ghc_deb/tasks/main.yml b/ansible/roles/ghc_deb/tasks/main.yml
index af6bdbc..4d169d1 100644
--- a/ansible/roles/ghc_deb/tasks/main.yml
+++ b/ansible/roles/ghc_deb/tasks/main.yml
@@ -11,35 +11,40 @@
 
 - name: add GHC repository
   apt_repository:
-    repo: deb http://downloads.haskell.org/debian bullseye main
+    repo: deb http://downloads.haskell.org/debian buster main
     filename: ghc
     state: present
 
-- name: install ghc 8.10 & cabal 3.2
-  apt:
-    pkg:
-      - cabal-install-3.2
-      - ghc-8.10.2
-    state: present
+- name: "auto install ghc"
+  block:
+    - name: install ghc 8.10 .. 9.2 & cabal 3.4
+      apt:
+        pkg:
+          - cabal-install-3.4
+          - ghc-8.10.2
+          - ghc-9.0.2
+          - ghc-9.2.1
+        state: present
 
-- name: drop old versions
-  apt:
-    pkg:
-      - ghc-8.10.1
-      - ghc
-      - cabal-install
-    state: absent
+    - name: drop old versions
+      apt:
+        pkg:
+          - ghc-8.10.1
+          - ghc
+          - cabal-install
+        state: absent
 
-- name: setup links to up-to-date GHC
-  alternatives:
-    name: "global-haskell-{{item}}"
-    link: "/usr/local/bin/{{item}}"
-    path: "/opt/ghc/bin/{{item}}"
-    priority: 50
-  with_items:
-    - cabal
-    - ghc
-    - ghci
-    - ghc-pkg
-    - haddock
-    - runghc
+    - name: setup links to up-to-date GHC
+      alternatives:
+        name: "global-haskell-{{item}}"
+        link: "/usr/local/bin/{{item}}"
+        path: "/opt/ghc/bin/{{item}}"
+        priority: 50
+      with_items:
+        - cabal
+        - ghc
+        - ghci
+        - ghc-pkg
+        - haddock
+        - runghc
+  when: auto_install_ghc
-- 
GitLab