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"] [submodule "roles/gantsign.intellij"]
path = roles/gantsign.intellij path = roles/gantsign.intellij
url = https://github.com/gantsign/ansible-role-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 - cli
vars_prompt: vars_prompt:
- name: tools_in - 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 private: false
pre_tasks: pre_tasks:
- name: Get tools list - 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)" prompt: "Specify comma separated list of required installation packages (ansible, cli, gui, host, proxy, wm, quickshell)"
private: false private: false
- name: tools_in - 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 private: false
pre_tasks: pre_tasks:
- name: Get configuration list - name: Get configuration list

View file

@ -1,2 +1 @@
bin_install_path: '{{ ansible_env.HOME }}/.local/bin' 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 become: true
ansible.builtin.dnf5: ansible.builtin.dnf5:
name: name:
- hlint - hlint
state: latest state: latest
- name: Downloading ghcup bootstrap script - name: Downloading ghcup bootstrap script
ansible.builtin.uri: ansible.builtin.uri:

View file

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

View file

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

View file

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