diff --git a/tasks/pkgs/choose.yml b/tasks/pkgs/choose.yml index f36ebe9..699df35 100644 --- a/tasks/pkgs/choose.yml +++ b/tasks/pkgs/choose.yml @@ -10,7 +10,12 @@ ansible.builtin.set_fact: choose: methods: - - source + Archlinux: [system, source] + default: [source] +- name: Finalise choose default facts + ansible.builtin.set_fact: + choose: + methods: "{{ choose.methods[os_family] | default(choose.methods.defualt) }}" version: 1.3.7 # }}} - name: Configure choose diff --git a/tasks/pkgs/clangd.yml b/tasks/pkgs/clangd.yml index 6791602..3b5815e 100644 --- a/tasks/pkgs/clangd.yml +++ b/tasks/pkgs/clangd.yml @@ -16,6 +16,7 @@ Debian: clang-12 Darwin: llvm Alpine: clang19 + Archlinux: clang # }}} - name: Configure clangd when: diff --git a/tasks/pkgs/direnv.yml b/tasks/pkgs/direnv.yml index 86d1d77..6664d8d 100644 --- a/tasks/pkgs/direnv.yml +++ b/tasks/pkgs/direnv.yml @@ -17,6 +17,7 @@ Alpine: direnv Debian: direnv Darwin: direnv + Archlinux: direnv install_url: github.com/direnv/direnv pkg_deps: - go diff --git a/tasks/pkgs/fd.yml b/tasks/pkgs/fd.yml index 46150e4..c6f066d 100644 --- a/tasks/pkgs/fd.yml +++ b/tasks/pkgs/fd.yml @@ -17,6 +17,7 @@ Darwin: fd Alpine: fd FreeBSD: fd-find + Archlinux: fd # }}} - name: Configure fd when: diff --git a/tasks/pkgs/ghostty.yml b/tasks/pkgs/ghostty.yml index eeba1c3..07ea15c 100644 --- a/tasks/pkgs/ghostty.yml +++ b/tasks/pkgs/ghostty.yml @@ -9,93 +9,62 @@ - name: Set ghostty default facts # {{{ ansible.builtin.set_fact: ghostty: - version: 1.3.1 - base_url: https://releases.files.ghostty.org - # install methods per distribution - default: - methods: - - source - pkg_deps: &pkgdeps - - zig - build_deps: + methods: + Archlinux: [system, source, appimage] + Alpine: [system, source, appimage] + default: [source, appimage] + pkgname: + Archlinux: ghostty + default: ghostty + build_deps: + default: - gtk4 - libadwaita - gtk4-layer-shell - pkgconf - gettext - Redhat: &redhat - methods: - - source - - appimage - pkg_deps: *pkgdeps - build_deps: + RedHat: - gtk4-devel - gtk4-layer-shell-devel - libadwaita-devel - gettext - AlmaLinux: *redhat - CentOS: *redhat - Rocky: *redhat - Debian: &debian - methods: - - source - - appimage - pkg_deps: *pkgdeps - build_deps: + Debian: - libgtk-4-dev - libgtk4-layer-shell-dev - libadwaita-1-dev - gettext - libxml2-utils - Ubuntu: *debian - Raspbian: *debian - Linux Mint: *debian - Archlinux: &arch - methods: - - system - - source - - appimage - pkg_deps: *pkgdeps - build_deps: + Archlinux: - gtk4 - gtk4-layer-shell - libadwaita - gettext - pkgname: ghostty - Majaro: *arch - Fedora: - methods: - - source - - appimage - pkg_deps: *pkgdeps - build_deps: - - gtk4-devel - - gtk4-layer-shell-devel - - libadwaita-devel - - gettext - Alpine: - methods: - - system - - source - - appimage - pkg_deps: *pkgdeps - build_deps: + Alpine: - gtk4.0-dev - libadwaita-dev - pkgconf - ncurses - gettext - pkgname: ghostty + +- name: Finalise ghostty default facts + ansible.builtin.set_fact: + ghostty: + version: 1.3.1 + base_url: https://releases.files.ghostty.org + methods: "{{ ghostty.methods[os_family] | default(ghostty.methods.default) }}" + pkg_deps: [zig] + pkgname: "{{ ghostty.pkgname[os_family] | default(ghostty.pkgname.default) }}" + build_deps: "{{ ghostty.build_deps[os_family] | default(ghostty.build_deps.default) }}" # }}} - name: Set ghostty facts ansible.builtin.set_fact: ghostty: version: "{{ ghostty_version | default(ghostty.version) }}" - methods: "{{ ghostty[distribution].methods | default(_methods['default']) }}" + methods: "{{ ghostty.methods }}" source_url: "{{ ghostty.base_url }}/{{ ghostty.version }}/ghostty-{{ ghostty.version }}.tar.gz" archive: "ghostty-{{ ghostty.version }}.tar.gz" - pkg_deps: "{{ ghostty[distribution].pkg_deps | default(omit) }}" - build_deps: "{{ ghostty[distribution].build_deps | default(ghostty.default.build_deps) }}" + pkg_deps: "{{ ghostty.pkg_deps | default(omit) }}" + build_deps: "{{ ghostty.build_deps }}" - name: Configure ghostty block: diff --git a/tasks/pkgs/go.yml b/tasks/pkgs/go.yml index 9129430..7916712 100644 --- a/tasks/pkgs/go.yml +++ b/tasks/pkgs/go.yml @@ -14,6 +14,7 @@ RedHat: go Debian: go Darwin: go + Archlinux: go FreeBSD: default: go 1.26: go126 diff --git a/tasks/pkgs/lazygit.yml b/tasks/pkgs/lazygit.yml index 0c7ede1..7e68352 100644 --- a/tasks/pkgs/lazygit.yml +++ b/tasks/pkgs/lazygit.yml @@ -9,6 +9,16 @@ - name: Set lazygit default facts # {{{ ansible.builtin.set_fact: lazygit: + methods: + Archlinux: [system, source] + default: [source] + pkgname: + default: lazygit +- name: Finalise lazygit default facts + ansible.builtin.set_fact: + lazygit: + methods: "{{ lazygit.methods[os_family] | default(lazygit.methods.default) }}" + pkgname: "{{ lazygit.pkgname[os_family] | default(lazygit.pkgname.default) }}" url: github.com/jesseduffield/lazygit version: "{{ lazygit_version | default('latest') }}" pkg_deps: @@ -22,6 +32,15 @@ ansible.builtin.set_fact: lazygit_imethod: "{{ imethod if imethod in lazygit.methods else lazygit.methods[0] }}" + - name: Configure lazygit system install + when: + - lazygit_imethod == 'system' + block: + - name: Queue lazygit system install + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + [lazygit.pkgname] }}" + lazygit_install: "{{ lazygit_imethod }}={{ lazygit.pkgname }}" + - name: Configure lazygit source install when: - lazygit_imethod == 'source' diff --git a/tasks/pkgs/neovim.yml b/tasks/pkgs/neovim.yml index 4f880aa..0d3b1ec 100644 --- a/tasks/pkgs/neovim.yml +++ b/tasks/pkgs/neovim.yml @@ -10,19 +10,47 @@ ansible.builtin.set_fact: neovim: methods: - - source - - system - - appimage - - archive + default: [system, source, appimage, archive] + pkgname: + default: neovim + build_deps: + Archlinux: + - base-devel + - ninja + - curl + RedHat: + - curl + - gcc + - gettext + - glibc-gconv-extra + - make + - ninja-build + Debian: + - build-essential + - curl + - gettext + - ninja-build + Darwin: + - curl + - gettext + - ninja + Alpine: + - build-base + - coreutils + - curl + - gettext-dev + +- name: Finalise neovim default facts + ansible.builtin.set_fact: + neovim: + methods: "{{ neovim.methods[os_family] | neovim.methods.default }}" git_repo: https://github.com/neovim/neovim appimage: base_url: https://github.com/neovim/neovim/releases/download + pkg_deps: + - cmake version: v0.12.1 - pkgname: - RedHat: neovim - Debian: neovim - Darwin: neovim - FreeBSD: neovim + pkgname: "{{ neovim.pkgname[os_family] | neovim.pkgname.default }}" build_files: - to: lib64/nvim - to: bin/nvim @@ -33,32 +61,7 @@ build_pkgdeps: - cmake - git - build_deps: - RedHat: - - cmake - - curl - - gcc - - gettext - - glibc-gconv-extra - - make - - ninja-build - Debian: - - build-essential - - cmake - - curl - - gettext - - ninja-build - Darwin: - - cmake - - curl - - gettext - - ninja - Alpine: - - build-base - - cmake - - coreutils - - curl - - gettext-dev + build_deps: "{{ neovim.build_deps[os_family] | neovim.build_deps.default }}" # }}} - name: Configure neovim when: diff --git a/tasks/pkgs/nodejs.yml b/tasks/pkgs/nodejs.yml index b2dc0a7..d2f535e 100644 --- a/tasks/pkgs/nodejs.yml +++ b/tasks/pkgs/nodejs.yml @@ -6,17 +6,21 @@ ## Methods: system ## Helpers: - --- -- name: Set nodejs default facts +- name: Set nodejs default facts # {{{ ansible.builtin.set_fact: nodejs: methods: - system pkgname: + Archlinux: + - nodejs + - npm RedHat: - nodejs FreeBSD: - node - npm +# }}} - name: Configure nodejs when: - "'nodejs' not in __configured" diff --git a/tasks/pkgs/ripgrep.yml b/tasks/pkgs/ripgrep.yml index d32ef6e..edd5469 100644 --- a/tasks/pkgs/ripgrep.yml +++ b/tasks/pkgs/ripgrep.yml @@ -14,6 +14,7 @@ pkgname: RedHat: ripgrep Debian: ripgrep + Archlinux: ripgrep # }}} - name: Configure ripgrep when: diff --git a/tasks/pkgs/stow.yml b/tasks/pkgs/stow.yml index 1e4c349..075d3d8 100644 --- a/tasks/pkgs/stow.yml +++ b/tasks/pkgs/stow.yml @@ -10,11 +10,15 @@ ansible.builtin.set_fact: stow: methods: - - system - - source + Archlinux: [system, source] + default: [source] pkgname: - RedHat: stow - Archlinux: stow + default: stow +- name: Finalise stow default facts + ansible.builtin.set_fact: + stow: + methods: "{{ stow.methods[os_family] | stow.methods.default }}" + pkgname: "{{ stow.pkgname[os_family] | stow.pkgname.default }}" baseurl: https://ftp.gnu.org/gnu/stow version: 2.4.1 # }}} diff --git a/tasks/pkgs/yazi.yml b/tasks/pkgs/yazi.yml index 41c156b..7b94f57 100644 --- a/tasks/pkgs/yazi.yml +++ b/tasks/pkgs/yazi.yml @@ -6,11 +6,16 @@ ## Methods: [source] ## Helpers: [cargo_build] --- -- name: Configure yazi installation # {{{ +- name: Set yazi default facts # {{{ ansible.builtin.set_fact: yazi: methods: - - source + default: [source] + Archlinux: [system, source] +- name: Finalise yazi default facts + ansible.builtin.set_fact: + yazi: + methods: "{{ yazi.methods[os_family] | default(yazi.methods.default) }}" version: 26.1.22 git: repo: https://github.com/sxyazi/yazi.git @@ -53,6 +58,15 @@ ansible.builtin.set_fact: yazi_imethod: "{{ imethod if imethod in yazi.methods else yazi.methods[0] }}" + - name: Configure yazi system install + when: + - yazi_imethod == 'system' + block: + - name: Queue yazi system install + ansible.builtin.set_fact: + pkg_sys: "{{ pkg_sys + [yazi.pkgname] }}" + yazi_install: "{{ yazi_imethod }}={{ yazi.pkgname }}" + - name: Configure yazi source install when: - yazi_imethod == 'source' diff --git a/tasks/pkgs/zig.yml b/tasks/pkgs/zig.yml index 442bfd4..9191656 100644 --- a/tasks/pkgs/zig.yml +++ b/tasks/pkgs/zig.yml @@ -8,12 +8,21 @@ --- - name: Set zig default facts ansible.builtin.set_fact: - methods: - - archive - - system - version: "{{ zig_version | default('0.15.2') }}" - archive: - url: https://ziglang.org/download + zig: + methods: + default: [archive] + Archlinux: [system, archive] + pkgname: + default: zig + +- name: Finalise zig default facts + ansible.builtin.set_fact: + zig: + methods: "{{ zig.methods[os_family] | default(zig.methods.default) }}" + pkgname: "{{ zig.pkgname[os_family] | default(zig.pkgname.default) }}" + version: "{{ zig_version | default('0.15.2') }}" + archive: + url: https://ziglang.org/download - name: Configure zig when: @@ -29,7 +38,8 @@ when: - zig_imethod == 'system' ansible.builtin.set_fact: - pkg_sys: "{{ pkg_sys + [zig.pkgname[os_family]] }}" + pkg_sys: "{{ pkg_sys + [zig.pkgname] }}" + zig_install: "{{ zig_imethod }}={{ zig.pkgname }}" - name: Configure zig archive install when: