From 8621bb0a2094dc47aff21e935e6eee19c9c4401a Mon Sep 17 00:00:00 2001 From: ProgramSnail Date: Tue, 14 Oct 2025 16:32:01 +0300 Subject: [PATCH] clojure, vscode version update, fixes --- playbooks/box.yml | 2 +- playbooks/manual.yml | 2 +- roles/dev/tasks/arend.yml | 5 +++ roles/dev/tasks/clojure.yml | 82 +++++++++++++++++++++++++++++++++++++ roles/dev/tasks/coq.yml | 11 ++--- roles/dev/tasks/main.yml | 9 ++++ roles/dev/tasks/vscode.yml | 21 ++++++---- 7 files changed, 118 insertions(+), 14 deletions(-) create mode 100644 roles/dev/tasks/arend.yml create mode 100644 roles/dev/tasks/clojure.yml diff --git a/playbooks/box.yml b/playbooks/box.yml index b3d620d..3db2458 100644 --- a/playbooks/box.yml +++ b/playbooks/box.yml @@ -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)" + prompt: "Specify comma separated list of required tool packages (cpp, js, haskell, ocaml, coq, txt, lang, truffle, gamedev, qt, clojure, arend)" private: false pre_tasks: - name: Get tools list diff --git a/playbooks/manual.yml b/playbooks/manual.yml index f821640..18b5acd 100644 --- a/playbooks/manual.yml +++ b/playbooks/manual.yml @@ -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)" + prompt: "Specify comma separated list of required tool packages (cpp, js, haskell, ocaml, coq, txt, lang, truffle, gamedev, qt, clojure, arend)" private: false pre_tasks: - name: Get configuration list diff --git a/roles/dev/tasks/arend.yml b/roles/dev/tasks/arend.yml new file mode 100644 index 0000000..be5fa3c --- /dev/null +++ b/roles/dev/tasks/arend.yml @@ -0,0 +1,5 @@ +# TODO: +# IDEA 2024.3.6: https://download.jetbrains.com/idea/ideaIC-2024.3.6.tar.gz +# # idea.sh installPlugins ... +# Arend plugin: org.arend.lang +# vim plugin with helix keybindings: IdeaVIM + keybindings (use idea vim bundle instead?) diff --git a/roles/dev/tasks/clojure.yml b/roles/dev/tasks/clojure.yml new file mode 100644 index 0000000..62c00e2 --- /dev/null +++ b/roles/dev/tasks/clojure.yml @@ -0,0 +1,82 @@ +- name: Installing vscode (uncoded) + ansible.builtin.import_tasks: vscode.yml + +# https://clojure.org/guides/install_clojure +- name: Installing clojure dependencies + become: true + ansible.builtin.dnf5: + name: + - java-latest-openjdk + - maven + - bash + - rlwrap + - curl + state: latest + +- name: Installing leiningen + become: true + ansible.builtin.get_url: + url: "https://codeberg.org/leiningen/leiningen/raw/branch/stable/bin/lein" + dest: "{{ bin_install_path }}/lein" + mode: a+x + force: true + +- name: Launching leiningen first time + ansible.builtin.command: + cmd: lein + changed_when: false + +- name: Downloading vscode calva (clojure lsp) extension + ansible.builtin.get_url: + url: "https://open-vsx.org/api/betterthantomorrow/calva/2.0.536/file/betterthantomorrow.calva-2.0.536.vsix" + dest: "{{ ansible_env.HOME }}/.vscode_ext/calva-2.0.536.vsix" + mode: a + force: false + +# TODO: does not work +# - name: "Installing vscode calva (clojure lsp) extension" +# ansible.builtin.command: +# cmd: "{{ ansible_env.HOME }}/.bin/code --install-extension {{ ansible_env.HOME }}/.vscode_ext/calva-2.0.536.vsix" +# changed_when: false + +- name: Get latest clojure lsp version + community.general.github_release: + user: clojure-lsp + repo: clojure-lsp + action: latest_release + register: clojure_lsp_version + +# TODO: or use java version instead ? +- name: Installing clojure lsp {{ clojure_lsp_version.tag }} + become: true + ansible.builtin.unarchive: + remote_src: true + src: "https://github.com/clojure-lsp/clojure-lsp/releases/download/{{ clojure_lsp_version.tag }}/clojure-lsp-native-linux-amd64.zip" + dest: "{{ bin_install_path }}/" + mode: a+x + keep_newer: true + # extra_opts: + # - --no-anchored + # - clojure-lsp + +- name: Get latest babashka version + community.general.github_release: + user: babashka + repo: babashka + action: latest_release + register: babashka_version + +# TODO: v in version ?? +- name: Installing babashka {{ babashka_version.tag }} + become: true + ansible.builtin.unarchive: + remote_src: true + src: "https://github.com/babashka/babashka/releases/download/{{ babashka_version.tag }}/babashka-{{ babashka_version.tag[1:] }}-linux-amd64.tar.gz" + dest: "{{ bin_install_path }}/" + mode: a+x + keep_newer: true + extra_opts: + - --no-anchored + - bb + +# NOTE: probably should add https://github.com/jank-lang/jank (build?) diff --git a/roles/dev/tasks/coq.yml b/roles/dev/tasks/coq.yml index 5a58a8a..8ccb03c 100644 --- a/roles/dev/tasks/coq.yml +++ b/roles/dev/tasks/coq.yml @@ -22,11 +22,12 @@ - name: Downloading vscode coq lsp extension ansible.builtin.get_url: url: "https://open-vsx.org/api/maximedenes/vscoq/2.2.6/file/maximedenes.vscoq-2.2.6.vsix" - dest: "{{ ansible_env.HOME }}/.vscode_ext/vscoq.vsi" + dest: "{{ ansible_env.HOME }}/.vscode_ext/vscoq.vsix" mode: a force: false -- name: "Installing vscode coq lsp extension" - ansible.builtin.command: - cmd: "{{ ansible_env.HOME }}/.bin/code --install-extension {{ ansible_env.HOME }}/.vscode_ext/vscoq.vsi" - changed_when: false +# TODO: does not work +# - name: "Installing vscode coq lsp extension" +# ansible.builtin.command: +# cmd: "{{ ansible_env.HOME }}/.bin/code --install-extension {{ ansible_env.HOME }}/.vscode_ext/vscoq.vsix" +# changed_when: false diff --git a/roles/dev/tasks/main.yml b/roles/dev/tasks/main.yml index 5676f5f..9350b73 100644 --- a/roles/dev/tasks/main.yml +++ b/roles/dev/tasks/main.yml @@ -44,3 +44,12 @@ - name: Truffle development environment ansible.builtin.import_tasks: qt.yml when: "'qt' in tools" + +- name: Clojure development environment + ansible.builtin.import_tasks: clojure.yml + when: "'clojure' in tools" + +# TODO +- name: Arend proof assistant development environment + ansible.builtin.import_tasks: arend.yml + when: "'arend' in tools" diff --git a/roles/dev/tasks/vscode.yml b/roles/dev/tasks/vscode.yml index 5e9acba..c45b966 100644 --- a/roles/dev/tasks/vscode.yml +++ b/roles/dev/tasks/vscode.yml @@ -17,19 +17,26 @@ - name: Installing vscode (uncoded) # become: true ansible.builtin.get_url: - url: "https://tilde.club/~megastallman/uncoded/code-oss-1754477678_amd64.AppImage" - dest: "{{ ansible_env.HOME }}/.bin/code" + url: "https://tilde.club/~megastallman/uncoded/code-oss-1760024969_amd64.AppImage" + dest: "{{ bin_install_path }}/code" mode: a+x force: false +- name: Creating vscode extensions dir + ansible.builtin.file: + path: "{{ ansible_env.HOME }}/.vscode_ext" + state: directory + mode: a + - name: Downloading vscode helix extension ansible.builtin.get_url: url: "https://open-vsx.org/api/jasew/vscode-helix-emulation/0.6.2/file/jasew.vscode-helix-emulation-0.6.2.vsix" - dest: "{{ ansible_env.HOME }}/.vscode_ext/vscode-helix-emulation.vsi" + dest: "{{ ansible_env.HOME }}/.vscode_ext/vscode-helix-emulation.vsix" mode: a force: false -- name: "Installing vscode helix extension" - ansible.builtin.command: - cmd: "{{ ansible_env.HOME }}/.bin/code --install-extension {{ ansible_env.HOME }}/.vscode_ext/vscode-helix-emulation.vsi" - changed_when: false +# TODO: does not work +# - name: "Installing vscode helix extension" +# ansible.builtin.command: +# cmd: "{{ ansible_env.HOME }}/.bin/code --install-extension {{ ansible_env.HOME }}/.vscode_ext/vscode-helix-emulation.vsix" +# changed_when: false