diff --git a/.gitmodules b/.gitmodules index 4ce46ed..df95ec6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "distrobox-ansible"] path = distrobox-ansible url = https://github.com/sandorex/distrobox-ansible.git +[submodule "roles/gantsign.intellij"] + path = roles/gantsign.intellij + url = https://github.com/gantsign/ansible-role-intellij diff --git a/playbooks/box.yml b/playbooks/box.yml index 5f5a3b2..aff664d 100644 --- a/playbooks/box.yml +++ b/playbooks/box.yml @@ -2,7 +2,7 @@ hosts: localhost connection: local vars: - configue: + configure: - bash - cli - git @@ -12,7 +12,8 @@ - cli vars_prompt: - name: tools_in - prompt: "Specify comma separated list of required tool packages (cpp, js, haskell, txt, lang)" + prompt: "Specify comma separated list of required tool packages (cpp, js, haskell, ocaml, coq, txt, lang, truffle)" + private: false pre_tasks: - name: Get tools list ansible.builtin.set_fact: diff --git a/playbooks/host.yml b/playbooks/host.yml index 393dfaf..907528e 100644 --- a/playbooks/host.yml +++ b/playbooks/host.yml @@ -11,7 +11,7 @@ - name: Setup containers hosts: containers vars: - configue: + configure: - bash - cli - git diff --git a/roles/dev/tasks/main.yml b/roles/dev/tasks/main.yml index 271b310..6130574 100644 --- a/roles/dev/tasks/main.yml +++ b/roles/dev/tasks/main.yml @@ -29,4 +29,6 @@ ansible.builtin.import_tasks: lang.yml when: "'lang' in tools" -# TODO: ocaml, truffle ... +- name: Truffle development environment + ansible.builtin.import_tasks: truffle.yml + when: "'truffle' in tools" diff --git a/roles/dev/tasks/truffle.yml b/roles/dev/tasks/truffle.yml new file mode 100644 index 0000000..313877e --- /dev/null +++ b/roles/dev/tasks/truffle.yml @@ -0,0 +1,47 @@ +- name: Create truffle dir + ansible.builtin.file: + path: "{{ ansible_env.HOME }}/truffle" + state: directory + mode: a + +# install tools +- name: Install openjdk + ansible.builtin.dnf5: + name: + - java-latest-openjdk + - maven + state: latest +- name: "Installing graalvm 23" + ansible.builtin.unarchive: + remote_src: true + src: "https://download.oracle.com/graalvm/23/latest/graalvm-jdk-23_linux-x64_bin.tar.gz" + dest: "{{ ansible_env.HOME }}/truffle/graalvm" + mode: a + keep_newer: true +- name: Select graalvm as java + community.general.alternatives: + name: java + path: "{{ ansible_env.HOME }}/truffle/graalvm-jdk-23.0.2+7.1/jre/bin/java" + +- name: Install Intellij IDEA + ansible.builtin.include_role: + name: gantsign.intellij + +# examples +- name: Clone simple language example + ansible.builtin.git: + repo: "https://github.com/graalvm/simplelanguage" + dest: "{{ ansible_env.HOME }}/truffle/simplelanguage" + version: master + +- name: Clone truffle usage tutorial + ansible.builtin.git: + repo: "https://github.com/skinny85/graalvm-truffle-tutorial" + dest: "{{ ansible_env.HOME }}/truffle/graalvm-truffle-tutorial" + version: master + +- name: Clone mumbler language example + ansible.builtin.git: + repo: "https://github.com/cesquivias/mumbler" + dest: "{{ ansible_env.HOME }}/truffle/mumbler" + version: master diff --git a/roles/flatpak/tasks/main.yml b/roles/flatpak/tasks/main.yml new file mode 100644 index 0000000..40a2365 --- /dev/null +++ b/roles/flatpak/tasks/main.yml @@ -0,0 +1,171 @@ +- name: Install flatpak + become: true + ansible.builtin.dnf5: + name: + - flatpak + state: latest + +- name: Add the flathub flatpak repository + community.general.flatpak_remote: + name: flathub + state: present + flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo + method: user + +- name: Install utils + community.general.flatpak: + name: + - com.github.tchx84.Flatseal + - org.clementine_player.Clementine + - org.atheme.audacious + - io.mpv.Mpv + - org.kde.keysmith + - org.localsend.localsend_app + - com.interversehq.qView + - com.obsproject.Studio + - com.belmoussaoui.Decoder + - app.organicmaps.desktop + - org.gnome.World.PikaBackup + - org.kde.isoimagewriter + - org.kde.kamoso + - org.kde.kcalc + - org.kde.kweather + - com.github.phase1geo.minder + - io.github.nuttyartist.notes + state: present + method: user + when: "'utils' in flatpak_apps" + +- name: Install web browsers + community.general.flatpak: + name: + - io.gitlab.librewolf-community + - io.github.ungoogled_software.ungoogled_chromium + - org.garudalinux.firedragon + state: present + method: user + when: "'web' in flatpak_apps" + +- name: Install docs tools + community.general.flatpak: + name: + - com.github.arminstraub.krop + - com.github.jeromerobert.pdfarranger + - net.scribus.Scribus + - org.kde.calligra + - org.libreoffice.LibreOffice + - org.kde.skanpage + - dev.ters.LocalTranslate + - re.sonny.Eloquent + state: present + method: user + when: "'docs' in flatpak_apps" + +- name: Install notes tools + community.general.flatpak: + name: + - com.github.flxzt.rnote + - com.github.xournalpp.xournalpp + state: present + method: user + when: "'notes' in flatpak_apps" + +- name: Install ai tools + community.general.flatpak: + name: + - com.jeffser.Alpaca + state: present + method: user + when: "'ai' in flatpak_apps" + +- name: Install art tools + community.general.flatpak: + name: + - io.github.guillaumechereau.Goxel + - io.github.lainsce.DotMatrix + - org.blender.Blender + - org.inkscape.Inkscape + - org.kde.krita + - org.mattbas.Glaxnimate + - org.mypaint.MyPaint + state: present + method: user + when: "'art' in flatpak_apps" + +- name: Install tools for things production + community.general.flatpak: + name: + - org.kicad.KiCad + - com.bambulab.BambuStudio + state: present + method: user + when: "'production' in flatpak_apps" + +- name: Install gamedev tools + community.general.flatpak: + name: + - org.godotengine.GodotSharp + - org.mapeditor.Tiled + - + state: present + method: user + when: "'gamedev' in flatpak_apps" + +- name: Install dev tools + community.general.flatpak: + name: + - dev.lapce.lapce + - io.qt.QtCreator + - io.github.cleomenezesjr.Escambo + - org.kde.kommit + - org.kde.kompare + - org.kde.okteta + - org.flatpak.Builder + - org.zealdocs.Zeal + state: present + method: user + when: "'dev' in flatpak_apps" + +- name: Install games + community.general.flatpak: + name: + - com.usebottles.bottles + - org.gnome.Boxes + - net.lutris.Lutris + - com.vysp3r.ProtonPlus + - eu.vcmi.VCMI + - net.hhoney.rota + - org.hedgewars.Hedgewars + - org.kde.kigo + - org.prismlauncher.PrismLauncher + - page.kramo.Cartridges + state: present + method: user + when: "'games' in flatpak_apps" + +- name: Install messaging apps + community.general.flatpak: + name: + - org.claws_mail.Claws-Mail + - im.fluffychat.Fluffychat + # - im.kaidan.kaidan # does not support old protocols, bad campatibility with anther clients + - org.gajim.Gajim + - org.kde.neochat + - org.telegram.desktop + - so.libdb.dissent + state: present + method: user + when: "'messaging' in flatpak_apps" + +- name: Install study apps + community.general.flatpak: + name: + - org.kde.kig + - org.kde.ktouch + - io.github.david_swift.Flashcards + - org.kde.kwordquiz + # - org.lamport.tla.toolbox + - org.zotero.Zotero + state: present + method: user + when: "'study' in flatpak_apps" diff --git a/roles/gantsign.intellij b/roles/gantsign.intellij new file mode 160000 index 0000000..5cc0578 --- /dev/null +++ b/roles/gantsign.intellij @@ -0,0 +1 @@ +Subproject commit 5cc0578ecb1b17e7ce9eacc1d6340b80dfa0942e