opam roles

This commit is contained in:
ProgramSnail 2025-12-27 17:18:40 +03:00
parent 5daf61c46d
commit 76ce2b944b
11 changed files with 60 additions and 29 deletions

3
.gitmodules vendored
View file

@ -4,3 +4,6 @@
[submodule "roles/gantsign.intellij"]
path = roles/gantsign.intellij
url = https://github.com/gantsign/ansible-role-intellij
[submodule "opam-ansible"]
path = opam-ansible
url = https://github.com/plescornet/opam-ansible

1
opam-ansible Submodule

@ -0,0 +1 @@
Subproject commit dc0ebd6843daf590ee2cd372367277686e6c8ace

View file

@ -13,7 +13,7 @@
- cli
vars_prompt:
- name: tools_in
prompt: "Specify comma separated list of required tool packages (cpp, js, haskell, ocaml, coq, txt, lang, truffle, gamedev, qt, clojure, arend)"
prompt: "Specify comma separated list of required tool packages (cpp, js, haskell, ocaml, ocanren, coq, txt, lang, truffle, gamedev, qt, clojure, arend)"
private: false
pre_tasks:
- name: Get tools list

View file

@ -9,7 +9,7 @@
prompt: "Specify comma separated list of required installation packages (ansible, cli, gui, host, proxy, wm, quickshell)"
private: false
- name: tools_in
prompt: "Specify comma separated list of required tool packages (cpp, js, haskell, ocaml, coq, txt, lang, truffle, gamedev, qt, clojure, arend)"
prompt: "Specify comma separated list of required tool packages (cpp, js, haskell, ocaml, ocanren, coq, txt, lang, truffle, gamedev, qt, clojure, arend)"
private: false
pre_tasks:
- name: Get configuration list

View file

@ -1,2 +1 @@
bin_install_path: '{{ ansible_env.HOME }}/.local/bin'

View file

@ -1,10 +1,9 @@
- name: installing hlint # TODO: install by cabal (?)
- name: Installing hlint # TODO: install by cabal (?)
become: true
ansible.builtin.dnf5:
name:
- hlint
state: latest
- name: Downloading ghcup bootstrap script
ansible.builtin.uri:

View file

@ -17,6 +17,10 @@
ansible.builtin.import_tasks: ocaml.yml
when: "'ocaml' in tools"
- name: OCanren dev environment
ansible.builtin.import_tasks: ocanren.yml
when: "'ocanren' in tools"
- name: Coq dev environment
ansible.builtin.import_tasks: coq.yml
when: "'coq' in tools"

View file

@ -1,31 +1,34 @@
# TODO: use ansible ocaml package for install ??
- name: Installing opam
- name: Installing opam dependencies
become: true
ansible.builtin.dnf5:
name:
- opam
- gmp-devel
state: latest
- name: Initializing opam
ansible.builtin.command:
cmd: opam init
changed_when: false
ignore_errors: true
- name: Creating opam default switch (5.3.0)
ansible.builtin.command:
cmd: opam switch create default 5.3.0
changed_when: false
ignore_errors: true
- name: Installing ocaml
ansible.builtin.import_role:
name: opam-ansible
vars:
opam_install_method: package_manager
opam_install_location: user
opam_switches:
- name: "default"
compiler: "--packages=ocaml-variants.5.3.0+options,ocaml-option-flambda"
packages:
- dune
- ocaml-lsp-server
- ocamlformat
- qcheck
# NOTE: done during usage by switch eval
# ---
# update fish path
- name: Get programs list to check fish presence
ansible.builtin.package_facts:
manager: auto
# - name: Get programs list to check fish presence
# ansible.builtin.package_facts:
# manager: auto
- name: Update fish path for bun
ansible.builtin.shell: fish_add_path -m {{ ansible_env.HOME }}/.opam/default/bin
args:
executable: /usr/bin/fish
changed_when: false
# - name: Update fish path for opam
# ansible.builtin.shell: fish_add_path -m {{ ansible_env.HOME }}/.opam/default/bin
# args:
# executable: /usr/bin/fish
# changed_when: false

View file

@ -0,0 +1,24 @@
- name: Installing ocaml
ansible.builtin.import_tasks: ocaml.yml
- name: Installing ocanren switch
ansible.builtin.import_role:
name: opam-ansible
vars:
opam_install_method: package_manager
opam_install_location: user
opam_switches:
- name: "ocanren"
compiler: "--packages=ocaml-variants.5.3.0+options,ocaml-option-flambda"
packages:
- dune
- ocaml-lsp-server
- ocamlformat
- qcheck
- camlp5
- GT
- OCanren
- OCanren-ppx
- ppx_expect_nobase
- benchmark

View file

@ -1,2 +1 @@
bin_install_path: '{{ ansible_env.HOME }}/.local/bin'

View file

@ -1,2 +1 @@
bin_install_path: '{{ ansible_env.HOME }}/.local/bin'