From c73ac46bc87270b9fe46c644afdc737a4c3a4d6e Mon Sep 17 00:00:00 2001 From: Matthew Stobbs Date: Wed, 12 Feb 2025 16:57:28 -0700 Subject: [PATCH] organizing for go pkg installs --- tasks/{src => archive}/go.yml | 28 +-- tasks/cargo.yml | 0 tasks/config/air.yml | 3 +- tasks/go.yml | 9 + tasks/homebrew.yml | 0 tasks/main.yml | 133 ++++++++------ tasks/pipx.yml | 0 tasks/pkgs/air.yml | 2 +- tasks/pkgs/go.yml | 12 +- tasks/pkgs/nodejs.yml | 5 +- tasks/system.yml | 0 vars/main.yml | 333 ++-------------------------------- vars/pkgs/air.yml | 3 +- vars/pkgs/neovide.yml | 21 +++ vars/pkgs/neovim.yml | 3 + vars/pkgs/nerdfonts.yml | 139 ++++++++++++++ vars/pkgs/nodejs.yml | 7 + vars/pkgs/nomad.yml | 3 + vars/pkgs/nushell.yml | 37 ++++ vars/pkgs/packer.yml | 3 + vars/pkgs/python3.yml | 7 + vars/pkgs/rust.yml | 7 + vars/pkgs/tailscale.yml | 15 ++ vars/pkgs/terraform.yml | 3 + vars/pkgs/terraformls.yml | 3 + vars/pkgs/terrarepo.yml | 2 + vars/pkgs/tidy.yml | 6 + vars/pkgs/vault.yml | 3 + vars/pkgs/zfs.yml | 22 +++ vars/pkgs/zig.yml | 9 + vars/pkgs/zls.yml | 9 + 31 files changed, 431 insertions(+), 396 deletions(-) rename tasks/{src => archive}/go.yml (58%) create mode 100644 tasks/cargo.yml create mode 100644 tasks/go.yml create mode 100644 tasks/homebrew.yml create mode 100644 tasks/pipx.yml create mode 100644 tasks/system.yml create mode 100644 vars/pkgs/neovide.yml create mode 100644 vars/pkgs/neovim.yml create mode 100644 vars/pkgs/nerdfonts.yml create mode 100644 vars/pkgs/nodejs.yml create mode 100644 vars/pkgs/nomad.yml create mode 100644 vars/pkgs/nushell.yml create mode 100644 vars/pkgs/packer.yml create mode 100644 vars/pkgs/python3.yml create mode 100644 vars/pkgs/rust.yml create mode 100644 vars/pkgs/tailscale.yml create mode 100644 vars/pkgs/terraform.yml create mode 100644 vars/pkgs/terraformls.yml create mode 100644 vars/pkgs/terrarepo.yml create mode 100644 vars/pkgs/tidy.yml create mode 100644 vars/pkgs/vault.yml create mode 100644 vars/pkgs/zfs.yml create mode 100644 vars/pkgs/zig.yml create mode 100644 vars/pkgs/zls.yml diff --git a/tasks/src/go.yml b/tasks/archive/go.yml similarity index 58% rename from tasks/src/go.yml rename to tasks/archive/go.yml index 855a715..51cd288 100644 --- a/tasks/src/go.yml +++ b/tasks/archive/go.yml @@ -17,6 +17,7 @@ checksum: "{{ go.sum }}" decompress: false mode: '0644' + register: get_url_go - name: Ensure go install dir exists become: "{{ sys_pkg_become }}" @@ -25,16 +26,19 @@ state: directory mode: '0755' - - name: Extract go package - become: "{{ sys_pkg_become }}" - ansible.builtin.unarchive: - dest: "{{ paths.archive }}/go" - src: "{{ d_go_dl_tmp.path }}/{{ go_archive }}" - remote_src: true - when: ansible_system == 'Linux' +- name: Extract go package + become: "{{ sys_pkg_become }}" + when: + - ansible_system == 'Linux' + ansible.builtin.unarchive: + dest: "{{ paths.archive }}/go" + src: "{{ d_go_dl_tmp.path }}/{{ go_archive }}" + remote_src: true - - name: Install go macOS use pkg file - ansible.builtin.command: - cmd: "installer -pkg {{ d_go_dl_tmp.path }}/{{ go_archive }} -target /" - when: ansible_system == 'Darwin' - become: true +- name: Install go macOS use pkg file + become: true + when: + - ansible_system == 'Darwin' + ansible.builtin.command: + creates: "{{ go.inst_path }}" + cmd: "installer -pkg {{ d_go_dl_tmp.path }}/{{ go_archive }} -target /" diff --git a/tasks/cargo.yml b/tasks/cargo.yml new file mode 100644 index 0000000..e69de29 diff --git a/tasks/config/air.yml b/tasks/config/air.yml index 2b248d5..e5ee19e 100644 --- a/tasks/config/air.yml +++ b/tasks/config/air.yml @@ -4,4 +4,5 @@ ansible.builtin.set_fact: air: ver: "{{ pkgconfig.air.version }}" - pkg: "{{ pkgconfig.air.git_repo }}@{{ pkgconfig.air.version }}" + pkg: "{{ pkgconfig.air.mod_path }}@{{ pkgconfig.air.version }}" + bin: "{{ pkgconfig.air.bin }}" diff --git a/tasks/go.yml b/tasks/go.yml new file mode 100644 index 0000000..3506bbd --- /dev/null +++ b/tasks/go.yml @@ -0,0 +1,9 @@ +--- +- name: Install go packages + become: "{{ archive_become }}" + ansible.builtin.command: + creates: "{{ paths.bin }}/{{ pkg.bin }}" + cmd: + - go + - install + - "{{ pkg.pkg }}" diff --git a/tasks/homebrew.yml b/tasks/homebrew.yml new file mode 100644 index 0000000..e69de29 diff --git a/tasks/main.yml b/tasks/main.yml index 0076746..12034c5 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,26 +1,63 @@ # vim: set filetype=yaml.ansible : --- -# create all the facts used throughout the role, but shouldn't be touched -# by the user - name: Set facts based on use_local == true when: - use_local ansible.builtin.set_fact: - paths: "{{ local_paths }}" + archive_become: false + path_prefix: "{{ lookup(ansible.builtin.env, 'HOME') }}/.local" flatpak_method: user - name: Set facts based on use_local == false when: - not use_local ansible.builtin.set_fact: - paths: "{{ sys_paths }}" + archive_become: true + path_prefix: "{{ defaults.path.prefix }}" flatpak_method: system +- name: Set macOS specific facts + when: + - ansible_system == 'Darwin' + block: + - name: Set homebrew bin path + ansible.builtin.set_fact: + homebrew_bin: "/opt/homebrew/bin" + - name: Set other macOS facts + ansible.builtin.set_fact: + dobecome: "{{ not use_local }}" + pipx_exec: "{{ homebrew_bin }}/pipx" + sys_pkg_become: false + +- name: Set Linux specific facts + when: + - ansible_system == 'Linux' + block: + - name: Set Linux facts + ansible.builtin.set_fact: + dobecome: "{{ not use_local }}" + sys_pkg_become: true + +- name: Set paths + ansible.builtin.set_fact: + paths: + appimage: "{{ appimage_path | default(path_prefix ~ defaults.path.suffix.appimage) }}" + archive: "{{ archive_path | default(path_prefix ~ defaults.path.suffix.archive) }}" + bin: "{{ bin_path | default(path_prefix ~ defaults.path.suffix.bin) }}" + cargo: "{{ cargo_path | default(path_prefix ~ defaults.path.suffix.cargo) }}" + go: "{{ goroot | default(path_prefix ~ defaults.path.suffix.go) }}" + pipx: "{{ pipx_path | default(path_prefix ~ defaults.path.suffix.pipx) }}" + - name: Set installation facts ansible.builtin.set_fact: - bin_dir: "{{ paths.install }}/bin" - state_dir: "{{ paths.install }}/state" + # repositories + brew_taps: [] # homebrew taps + flatpak_remotes: # flatpak remotes, includes flathub by default + - name: flathub + url: https://dl.flathub.org/repo/flathub.flatpakrepo + # install lists app_images: [] # app_images to install + archive_pkgs: [] # packages installed via prebuilt archive cargo_pkgs: [] # rust packages from cargo cask_pkgs: [] # homebrew casks flatpaks: [] # flatpaks @@ -30,39 +67,16 @@ src_pkgs: [] # packages built from source sys_pkgs: [] # system package manager packages tap_pkgs: [] # homebrew tap packages - brew_taps: [] # homebrew taps - flatpak_remotes: # flatpak remotes, includes flathub by default - - name: flathub - url: https://dl.flathub.org/repo/flathub.flatpakrepo - -- name: Set macOS specific facts - when: - - ansible_system == 'Darwin' - block: - - name: Set pipx executable - ansible.builtin.set_fact: - pipx_exec: /opt/homebrew/bin/pipx - - name: Set sys_pkg_become to false for homebrew - ansible.builtin.set_fact: - sys_pkg_become: false - -- name: Set Linux specific facts - when: - - ansible_system == 'Linux' - block: - - name: Set Linux facts - ansible.builtin.set_fact: - sys_pkg_become: true - name: Ensure required paths exist - become: "{{ not use_local }}" - loop: "{{ paths + [bin_dir, state_dir] }}" + become: "{{ dobecome }}" + loop: "{{ paths | dict2items }}" loop_control: loop_var: path ansible.builtin.file: state: directory mode: '0755' - path: "{{ path }}" + path: "{{ path.value }}" - name: Read default package configuration ansible.builtin.include_vars: @@ -144,12 +158,10 @@ - name: Install flatpaks on Linux Systems when: - ansible_system == 'Linux' - - flatpaks|length > 0 block: - name: Add flatpak repos when: - flatpak_remotes|length > 0 - - flatpaks|length > 0 become: "{{ not use_local }}" loop: "{{ flatpak_remotes | unique }}" loop_control: @@ -166,61 +178,62 @@ loop: "{{ flatpaks | unique }}" loop_control: loop_var: flatpak - when: - - flatpaks|length > 0 community.general.flatpak: state: latest method: "{{ flatpak_method }}" name: "{{ flatpak.name }}" remote: "{{ flatpak.remote | default('flathub') }}" -- name: Ensure prefix/bin exists - ansible.builtin.file: - state: directory - path: "{{ paths.install }}/bin" - owner: root - mode: '0755' - become: true +- name: Install archive_pkgs + when: + - archive_pkgs|length > 0 + loop: "{{ archive_pkgs }}" + loop_control: + loop_var: pkg + ansible.builtin.include_tasks: + file: "archive/{{ pkg }}.yml" - name: Install src_pkgs - ansible.builtin.include_tasks: - file: "src/{{ src_pkg }}.yml" + when: + - src_pkgs|length > 0 loop: "{{ src_pkgs | unique }}" loop_control: - loop_var: src_pkg - when: src_pkgs|length > 0 + loop_var: pkg + ansible.builtin.include_tasks: + file: "src/{{ pkg }}.yml" -- name: Install cargo packages at specific version +- name: Install cargo packages when: - cargo_pkgs|length > 0 become: "{{ not use_local }}" loop: "{{ cargo_pkgs | unique }}" loop_control: - loop_var: cargo_pkg + loop_var: pkg community.general.cargo: - name: "{{ cargo_pkg.cargo.pkg }}" - version: "{{ cargo_pkg.ver }}" + name: "{{ pkg.cargo.pkg }}" + version: "{{ pkg.ver }}" path: "{{ paths.cargo }}" - locked: "{{ cargo_pkg.cargo.locked }}" + locked: "{{ pkg.cargo.locked }}" -- name: Install local go packages +- name: Install go packages when: - go_pkgs|length > 0 loop: "{{ go_pkgs | unique }}" loop_control: - loop_var: go_pkg + loop_var: pkg environment: - GOROOT: "{{ paths.install }}/go" - PATH: "{{ paths.install }}/go/bin:$PATH" - ansible.builtin.command: - cmd: "go install {{ go_pkg }}" - # TODO: figure out how to check if the go_pkg is already installed + GOBIN: "{{ paths.bin }}" + PATH: "{{ paths.go }}/bin:$PATH" + ansible.builtin.include_tasks: + file: go.yml - name: Install local npm packages + when: + - npm_pkgs|length > 0 + become: "{{ archive_become }}" loop: "{{ npm_pkgs | unique }}" loop_control: loop_var: npm_pkg - when: npm_pkgs|length > 0 community.general.npm: global: true name: "{{ npm_pkg }}" diff --git a/tasks/pipx.yml b/tasks/pipx.yml new file mode 100644 index 0000000..e69de29 diff --git a/tasks/pkgs/air.yml b/tasks/pkgs/air.yml index 7922156..0c1ab44 100644 --- a/tasks/pkgs/air.yml +++ b/tasks/pkgs/air.yml @@ -4,4 +4,4 @@ notify: - Depend go ansible.builtin.set_fact: - go_pkgs: "{{ go_pkgs + [air.pkg] }}" + go_pkgs: "{{ go_pkgs + [air] }}" diff --git a/tasks/pkgs/go.yml b/tasks/pkgs/go.yml index 8032ca2..13551a8 100644 --- a/tasks/pkgs/go.yml +++ b/tasks/pkgs/go.yml @@ -1,5 +1,13 @@ # vim: set filetype=yaml.ansible : --- -- name: Append to pkgs +- name: Install from archive + when: + - prefer_archive ansible.builtin.set_fact: - src_pkgs: "{{ src_pkgs + ['go'] }}" + archive_pkgs: "{{ archive_pkgs + ['go'] }}" + +- name: Append to pkgs + when: + - not prefer_archive + ansible.builtin.set_fact: + sys_pkgs: "{{ src_pkgs + ['go'] }}" diff --git a/tasks/pkgs/nodejs.yml b/tasks/pkgs/nodejs.yml index 34a2d51..4209ead 100644 --- a/tasks/pkgs/nodejs.yml +++ b/tasks/pkgs/nodejs.yml @@ -1,8 +1,5 @@ # vim: set filetype=yaml.ansible : --- -- ansible.builtin.set_fact: - nodejs: true - -- name: append to pkgs +- name: Append to pkgs ansible.builtin.set_fact: syspkgs: "{{ syspkgs + pkgconfig.nodejs.pkgs[ansible_system] }}" diff --git a/tasks/system.yml b/tasks/system.yml new file mode 100644 index 0000000..e69de29 diff --git a/vars/main.yml b/vars/main.yml index d244cb8..a05766d 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -5,319 +5,22 @@ use_local: true prefer_method: system packages: [] # list of packages to install -user_home: "{{ lookup(ansible.builtin.env, 'HOME') }}" +defaults: + path: + prefix: "/usr/local" + suffix: + appimage: "/appimage" # keep appimages here + archive: "/archive" # extract archives here + bin: "/bin" # installation prefix. Binaries are placed in `{{ install }}/bin` + cargo: "/cargo" # cargo install location + go: "/go" # GOROOT + pipx: "/pipx" # where pipx environments are installed (venvs). They are symlinked to `bin` -local_paths: # all localpaths are prefixed with the users "{{ user_home }} directory - appimage: "{{ user_home }}/.local/appimage" # keep appimages here - archive: "{{ user_home }}/.local/archive" # extract archives here - cache: "{{ user_home }}/.cache" # cache downloads here - cargo: "{{ user_home }}/.cargo" # cargo install location - install: "{{ user_home }}/.local" # installation prefix. Binaries are placed in `{{ install }}/bin` - -sys_paths: # if installing at a system level (default) - appimage: /opt/appimage # appimages are installed to {{ apimage_install_prefix }}// - archive: /opt/archive # pre-compiled archives are extracted to {{ archive_install_prefix }}/ - cache: /opt/archive/.cache # download archives here - cargo: /opt/cargo # cargo install location - install: /usr/local # executables get linked to {{ default_install_prefix }}/bin - -pkgconfig: - neovide: - git_repo: https://github.com/neovide/neovide.git - build_deps: - RedHat: - - fontconfig-devel - - freetype-devel - - libX11-xcb - - libX11-devel - - libstdc++-static - - libstdc++-devel - - "@Development Tools" - - "@Development Libraries" - Debian: - - fontconfig-devel - - freetype-devel - - libX11-xcb - - libX11-devel - - libstdc++-static - - libstdc++-devel - - "@Development Tools" - - "@Development Libraries" - neovim: - git_repo: https://github.com/neovim/neovim - appimage_url_pfx: https://github.com/neovim/neovim/releases/download - nerdfonts: - fonts: - 0xProto: - brew: font-0xproto-nerd-font - "3270": - brew: font-3270-nerd-font - Agave: - brew: font-agave-nerd-font - AnonymousPro: - brew: font-anonymice-nerd-font - Arimo: - brew: font-arimo-nerd-font - AurulentSansMono: - brew: font-aurulent-sans-mono-nerd-font - BigBlueTerminal: - brew: font-bigblue-terminal-nerd-font - BitstreamVeraSansMono: - brew: font-bitstream-vera-sans-mono-nerd-font - IBMPlexMono: - brew: font-blex-mono-nerd-font - CascadiaCode: - brew: font-caskaydia-cove-nerd-font - CascadiaMono: - brew: font-caskaydia-mono-nerd-font - CodeNewRoman: - brew: font-code-new-roman-nerd-font - ComicShannsMono: - brew: font-comic-shanns-mono-nerd-font - CommitMono: - brew: font-commit-mono-nerd-font - Cousine: - brew: font-cousine-nerd-font - D2Coding: - brew: font-d2coding-nerd-font - DaddyTimeMono: - brew: font-daddy-time-mono-nerd-font - DejaVuSansMono: - brew: font-dejavu-sans-mono-nerd-font - DepartureMono: - brew: font-departure-mono-nerd-font - DroidSansMono: - brew: font-droid-sans-mono-nerd-font - EnvyCodeR: - brew: font-envy-code-r-nerd-font - FantasqueSansMono: - brew: font-fantasque-sans-mono-nerd-font - FiraCode: - brew: font-fira-code-nerd-font - FiraMono: - brew: font-fira-mono-nerd-font - GeistMono: - brew: font-geist-mono-nerd-font - Go-Mono: - brew: font-go-mono-nerd-font - Gohu: - brew: font-gohufont-nerd-font - Hack: - brew: font-hack-nerd-font - Hasklig: - brew: font-hasklug-nerd-font - HeavyData: - brew: font-heavy-data-nerd-font - Hermit: - brew: font-hurmit-nerd-font - IA-Writer: - brew: font-im-writing-nerd-font - InconsolataGo: - brew: font-inconsolata-go-nerd-font - InconsolataLGC: - brew: font-inconsolata-lgc-nerd-font - Inconsolata: - brew: font-inconsolata-nerd-font - IntelOneMono: - brew: font-intone-mono-nerd-font - Iosevka: - brew: font-iosevka-nerd-font - IosevkaTerm: - brew: font-iosevka-term-nerd-font - IosevkaTermSlab: - brew: font-iosevka-term-slab-nerd-font - JetBrainsMono: - brew: font-jetbrains-mono-nerd-font - Lekton: - brew: font-lekton-nerd-font - LiberationMono: - brew: font-liberation-nerd-font - Lilex: - brew: font-lilex-nerd-font - MPlus: - brew: font-m+-nerd-font - MartianMono: - brew: font-martian-mono-nerd-font - Meslo: - brew: font-meslo-lg-nerd-font - Monaspace: - brew: font-monaspace-nerd-font - Monofur: - brew: font-monofur-nerd-font - Mononoki: - brew: font-mononoki-nerd-font - Monoid: - brew: font-monoid-nerd-font - NerdFontsSymbolsOnly: - brew: font-symbols-only-nerd-font - Noto: - brew: font-noto-nerd-font - OpenDyslexic: - brew: font-open-dyslexic-nerd-font - Overpass: - brew: font-overpass-nerd-font - ProFont: - brew: font-profont-nerd-font - ProggyClean: - brew: font-proggy-clean-tt-nerd-font - Recursive: - brew: font-recursive-mono-nerd-font - RobotoMono: - brew: font-roboto-mono-nerd-font - SourceCodePro: - brew: font-sauce-code-pro-nerd-font - ShareTechMono: - brew: font-shure-tech-mono-nerd-font - SpaceMono: - brew: font-space-mono-nerd-font - Terminus: - brew: font-terminess-ttf-nerd-font - Tinos: - brew: font-tinos-nerd-font - UbuntuMono: - brew: font-ubuntu-mono-nerd-font - Ubuntu: - brew: font-ubuntu-nerd-font - UbuntuSans: - brew: font-ubuntu-sans-nerd-font - VictorMono: - brew: font-victor-mono-nerd-font - ZedMono: - brew: font-zed-mono-nerd-font - base_url: https://github.com/ryanoasis/nerd-fonts/releases/latest/download - nodejs: - pkgs: - Darwin: - - node - Linux: - - nodejs - - npm - nomad: - Linux: nomad - Darwin: hashicorp/tap/nomad - nushell: - build_deps: - Darwin: - - openssl - - cmake - Debian: - - pkg-config - - libssl-dev - - build-essential - RedHat: - - libxcb - - openssl-devel - - libX11-devel - nupkgs_extra: [] - nupkgs_common: - - nu - - nu_plugin_compress - - nu_plugin_desktop_notifications - - nu_plugin_dns - - nu_plugin_file_dialog - - nu_plugin_formats - - nu_plugin_gstat - - nu_plugin_hashes - - nu_plugin_hcl - - nu_plugin_highlight - - nu_plugin_inc - - nu_plugin_json_path - - nu_plugin_net - - nu_plugin_polars - - nu_plugin_query - - nu_plugin_selector - pkgs: - Darwin: - - nu_plugin_plist - Debian: [] - RedHat: - - nu_plugin_rpm - packer: - Linux: packer - Darwin: packer - python3: - pkgs: - Darwin: - - python3 - Linux: - - python3 - - python3-pip - rust: - pkgs: - Darwin: - - rust - Linux: - - rustc - - cargo - tailscale: - url_base: https://pkgs.tailscale.com/stable - release: - bookworm: - gpg: bookworm.noarmor.gpg - list: bookworm.tailscale-keyring.list - bullseye: - gpg: bullseye.noarmor.gpg - list: bullseye.tailscale-keyring.list - buster: - gpg: buster.gpg - list: buster.list - stretch: - gpg: stretch.gpg - list: stretch.list - terraform: - Linux: terraform - Darwin: hashicorp/tap/terraform - terraformls: - Linux: terraform-ls - Darwin: hashicorp/tap/terraform-ls - terrarepo: - repo: https://terra.fyralabs.com/terra.repo - tidy: - pkgs: - Darwin: - - tidy-html5 - Linux: - - tidy - vault: - Linux: vault - Darwin: hashicorp/tap/vault - zfs: - repo_base: https://zfsonlinux.org - gpg_key: https://raw.githubusercontent.com/zfsonlinux/zfsonlinux.github.com/master/zfs-release/RPM-GPG-KEY-openzfs-key2 - gpg_key_fingerprint: 7DC7 299D CF7C 7FD9 CD87 701B A599 FD5E 9DB8 4141 - fedora: - release: 2-6 - epel: - release: 2-3 - pkgs: - RedHat: - - zfs - Debian: - - zfs-dkms - - zfsutils-linux - build_deps: - RedHat: - - kernel-devel - - epel-release - Debian: - - dpkg-dev - - linux-headers-generic - - linux-image-generic - zig: - base_url: https://ziglang.org/download - sysmap: - Darwin: macos - Linux: linux - archmap: - aarch64: aarch64 - arm64: aarch64 - x86_64: x86_64 - zls: - base_url: https://builds.zigtools.org - sysmap: - Darwin: macos - Linux: linux - archmap: - aarch64: aarch64 - arm64: aarch64 - x86_64: x86_64 +# paths resolve to either $HOME/.local as the prefix, or /usr/local +# all created paths are named: +# - paths.appimage: $PREFIX/appimage +# - paths.archive: $PREFIX/archive +# - paths.bin: $PREFIX/bin +# - paths.cargo: $PREFIX/cargo +# - paths.go: $PREFIX/go +# - paths.pipx: $PREFIX/pipx diff --git a/vars/pkgs/air.yml b/vars/pkgs/air.yml index 8033b1b..9476287 100644 --- a/vars/pkgs/air.yml +++ b/vars/pkgs/air.yml @@ -1,3 +1,4 @@ air: version: latest - git_repo: github.com/air-verse/air + mod_path: github.com/air-verse/air + bin: air diff --git a/vars/pkgs/neovide.yml b/vars/pkgs/neovide.yml new file mode 100644 index 0000000..f32e2f1 --- /dev/null +++ b/vars/pkgs/neovide.yml @@ -0,0 +1,21 @@ +neovide: + git_repo: https://github.com/neovide/neovide.git + build_deps: + RedHat: + - fontconfig-devel + - freetype-devel + - libX11-xcb + - libX11-devel + - libstdc++-static + - libstdc++-devel + - "@Development Tools" + - "@Development Libraries" + Debian: + - fontconfig-devel + - freetype-devel + - libX11-xcb + - libX11-devel + - libstdc++-static + - libstdc++-devel + - "@Development Tools" + - "@Development Libraries" diff --git a/vars/pkgs/neovim.yml b/vars/pkgs/neovim.yml new file mode 100644 index 0000000..2bc60b3 --- /dev/null +++ b/vars/pkgs/neovim.yml @@ -0,0 +1,3 @@ +neovim: + git_repo: https://github.com/neovim/neovim + appimage_url_pfx: https://github.com/neovim/neovim/releases/download diff --git a/vars/pkgs/nerdfonts.yml b/vars/pkgs/nerdfonts.yml new file mode 100644 index 0000000..6b658ac --- /dev/null +++ b/vars/pkgs/nerdfonts.yml @@ -0,0 +1,139 @@ +nerdfonts: + fonts: + 0xProto: + brew: font-0xproto-nerd-font + "3270": + brew: font-3270-nerd-font + Agave: + brew: font-agave-nerd-font + AnonymousPro: + brew: font-anonymice-nerd-font + Arimo: + brew: font-arimo-nerd-font + AurulentSansMono: + brew: font-aurulent-sans-mono-nerd-font + BigBlueTerminal: + brew: font-bigblue-terminal-nerd-font + BitstreamVeraSansMono: + brew: font-bitstream-vera-sans-mono-nerd-font + IBMPlexMono: + brew: font-blex-mono-nerd-font + CascadiaCode: + brew: font-caskaydia-cove-nerd-font + CascadiaMono: + brew: font-caskaydia-mono-nerd-font + CodeNewRoman: + brew: font-code-new-roman-nerd-font + ComicShannsMono: + brew: font-comic-shanns-mono-nerd-font + CommitMono: + brew: font-commit-mono-nerd-font + Cousine: + brew: font-cousine-nerd-font + D2Coding: + brew: font-d2coding-nerd-font + DaddyTimeMono: + brew: font-daddy-time-mono-nerd-font + DejaVuSansMono: + brew: font-dejavu-sans-mono-nerd-font + DepartureMono: + brew: font-departure-mono-nerd-font + DroidSansMono: + brew: font-droid-sans-mono-nerd-font + EnvyCodeR: + brew: font-envy-code-r-nerd-font + FantasqueSansMono: + brew: font-fantasque-sans-mono-nerd-font + FiraCode: + brew: font-fira-code-nerd-font + FiraMono: + brew: font-fira-mono-nerd-font + GeistMono: + brew: font-geist-mono-nerd-font + Go-Mono: + brew: font-go-mono-nerd-font + Gohu: + brew: font-gohufont-nerd-font + Hack: + brew: font-hack-nerd-font + Hasklig: + brew: font-hasklug-nerd-font + HeavyData: + brew: font-heavy-data-nerd-font + Hermit: + brew: font-hurmit-nerd-font + IA-Writer: + brew: font-im-writing-nerd-font + InconsolataGo: + brew: font-inconsolata-go-nerd-font + InconsolataLGC: + brew: font-inconsolata-lgc-nerd-font + Inconsolata: + brew: font-inconsolata-nerd-font + IntelOneMono: + brew: font-intone-mono-nerd-font + Iosevka: + brew: font-iosevka-nerd-font + IosevkaTerm: + brew: font-iosevka-term-nerd-font + IosevkaTermSlab: + brew: font-iosevka-term-slab-nerd-font + JetBrainsMono: + brew: font-jetbrains-mono-nerd-font + Lekton: + brew: font-lekton-nerd-font + LiberationMono: + brew: font-liberation-nerd-font + Lilex: + brew: font-lilex-nerd-font + MPlus: + brew: font-m+-nerd-font + MartianMono: + brew: font-martian-mono-nerd-font + Meslo: + brew: font-meslo-lg-nerd-font + Monaspace: + brew: font-monaspace-nerd-font + Monofur: + brew: font-monofur-nerd-font + Mononoki: + brew: font-mononoki-nerd-font + Monoid: + brew: font-monoid-nerd-font + NerdFontsSymbolsOnly: + brew: font-symbols-only-nerd-font + Noto: + brew: font-noto-nerd-font + OpenDyslexic: + brew: font-open-dyslexic-nerd-font + Overpass: + brew: font-overpass-nerd-font + ProFont: + brew: font-profont-nerd-font + ProggyClean: + brew: font-proggy-clean-tt-nerd-font + Recursive: + brew: font-recursive-mono-nerd-font + RobotoMono: + brew: font-roboto-mono-nerd-font + SourceCodePro: + brew: font-sauce-code-pro-nerd-font + ShareTechMono: + brew: font-shure-tech-mono-nerd-font + SpaceMono: + brew: font-space-mono-nerd-font + Terminus: + brew: font-terminess-ttf-nerd-font + Tinos: + brew: font-tinos-nerd-font + UbuntuMono: + brew: font-ubuntu-mono-nerd-font + Ubuntu: + brew: font-ubuntu-nerd-font + UbuntuSans: + brew: font-ubuntu-sans-nerd-font + VictorMono: + brew: font-victor-mono-nerd-font + ZedMono: + brew: font-zed-mono-nerd-font + base_url: https://github.com/ryanoasis/nerd-fonts/releases/latest/download diff --git a/vars/pkgs/nodejs.yml b/vars/pkgs/nodejs.yml new file mode 100644 index 0000000..41d34dd --- /dev/null +++ b/vars/pkgs/nodejs.yml @@ -0,0 +1,7 @@ +nodejs: + pkgs: + Darwin: + - node + Linux: + - nodejs + - npm diff --git a/vars/pkgs/nomad.yml b/vars/pkgs/nomad.yml new file mode 100644 index 0000000..872edee --- /dev/null +++ b/vars/pkgs/nomad.yml @@ -0,0 +1,3 @@ +nomad: + Linux: nomad + Darwin: hashicorp/tap/nomad diff --git a/vars/pkgs/nushell.yml b/vars/pkgs/nushell.yml new file mode 100644 index 0000000..6a58049 --- /dev/null +++ b/vars/pkgs/nushell.yml @@ -0,0 +1,37 @@ +nushell: + build_deps: + Darwin: + - openssl + - cmake + Debian: + - pkg-config + - libssl-dev + - build-essential + RedHat: + - libxcb + - openssl-devel + - libX11-devel + nupkgs_extra: [] + nupkgs_common: + - nu + - nu_plugin_compress + - nu_plugin_desktop_notifications + - nu_plugin_dns + - nu_plugin_file_dialog + - nu_plugin_formats + - nu_plugin_gstat + - nu_plugin_hashes + - nu_plugin_hcl + - nu_plugin_highlight + - nu_plugin_inc + - nu_plugin_json_path + - nu_plugin_net + - nu_plugin_polars + - nu_plugin_query + - nu_plugin_selector + pkgs: + Darwin: + - nu_plugin_plist + Debian: [] + RedHat: + - nu_plugin_rpm diff --git a/vars/pkgs/packer.yml b/vars/pkgs/packer.yml new file mode 100644 index 0000000..ee0d63e --- /dev/null +++ b/vars/pkgs/packer.yml @@ -0,0 +1,3 @@ +packer: + Linux: packer + Darwin: packer diff --git a/vars/pkgs/python3.yml b/vars/pkgs/python3.yml new file mode 100644 index 0000000..897216e --- /dev/null +++ b/vars/pkgs/python3.yml @@ -0,0 +1,7 @@ +python3: + pkgs: + Darwin: + - python3 + Linux: + - python3 + - python3-pip diff --git a/vars/pkgs/rust.yml b/vars/pkgs/rust.yml new file mode 100644 index 0000000..f7fbc28 --- /dev/null +++ b/vars/pkgs/rust.yml @@ -0,0 +1,7 @@ +rust: + pkgs: + Darwin: + - rust + Linux: + - rustc + - cargo diff --git a/vars/pkgs/tailscale.yml b/vars/pkgs/tailscale.yml new file mode 100644 index 0000000..dc6bd46 --- /dev/null +++ b/vars/pkgs/tailscale.yml @@ -0,0 +1,15 @@ +tailscale: + url_base: https://pkgs.tailscale.com/stable + release: + bookworm: + gpg: bookworm.noarmor.gpg + list: bookworm.tailscale-keyring.list + bullseye: + gpg: bullseye.noarmor.gpg + list: bullseye.tailscale-keyring.list + buster: + gpg: buster.gpg + list: buster.list + stretch: + gpg: stretch.gpg + list: stretch.list diff --git a/vars/pkgs/terraform.yml b/vars/pkgs/terraform.yml new file mode 100644 index 0000000..29c2578 --- /dev/null +++ b/vars/pkgs/terraform.yml @@ -0,0 +1,3 @@ +terraform: + Linux: terraform + Darwin: hashicorp/tap/terraform diff --git a/vars/pkgs/terraformls.yml b/vars/pkgs/terraformls.yml new file mode 100644 index 0000000..fbc8ed9 --- /dev/null +++ b/vars/pkgs/terraformls.yml @@ -0,0 +1,3 @@ +terraformls: + Linux: terraform-ls + Darwin: hashicorp/tap/terraform-ls diff --git a/vars/pkgs/terrarepo.yml b/vars/pkgs/terrarepo.yml new file mode 100644 index 0000000..af94a1a --- /dev/null +++ b/vars/pkgs/terrarepo.yml @@ -0,0 +1,2 @@ +terrarepo: + repo: https://terra.fyralabs.com/terra.repo diff --git a/vars/pkgs/tidy.yml b/vars/pkgs/tidy.yml new file mode 100644 index 0000000..be2c764 --- /dev/null +++ b/vars/pkgs/tidy.yml @@ -0,0 +1,6 @@ +tidy: + pkgs: + Darwin: + - tidy-html5 + Linux: + - tidy diff --git a/vars/pkgs/vault.yml b/vars/pkgs/vault.yml new file mode 100644 index 0000000..ca53cde --- /dev/null +++ b/vars/pkgs/vault.yml @@ -0,0 +1,3 @@ +vault: + Linux: vault + Darwin: hashicorp/tap/vault diff --git a/vars/pkgs/zfs.yml b/vars/pkgs/zfs.yml new file mode 100644 index 0000000..ff2138d --- /dev/null +++ b/vars/pkgs/zfs.yml @@ -0,0 +1,22 @@ +zfs: + repo_base: https://zfsonlinux.org + gpg_key: https://raw.githubusercontent.com/zfsonlinux/zfsonlinux.github.com/master/zfs-release/RPM-GPG-KEY-openzfs-key2 + gpg_key_fingerprint: 7DC7 299D CF7C 7FD9 CD87 701B A599 FD5E 9DB8 4141 + fedora: + release: 2-6 + epel: + release: 2-3 + pkgs: + RedHat: + - zfs + Debian: + - zfs-dkms + - zfsutils-linux + build_deps: + RedHat: + - kernel-devel + - epel-release + Debian: + - dpkg-dev + - linux-headers-generic + - linux-image-generic diff --git a/vars/pkgs/zig.yml b/vars/pkgs/zig.yml new file mode 100644 index 0000000..a74aba4 --- /dev/null +++ b/vars/pkgs/zig.yml @@ -0,0 +1,9 @@ +zig: + base_url: https://ziglang.org/download + sysmap: + Darwin: macos + Linux: linux + archmap: + aarch64: aarch64 + arm64: aarch64 + x86_64: x86_64 diff --git a/vars/pkgs/zls.yml b/vars/pkgs/zls.yml new file mode 100644 index 0000000..4734984 --- /dev/null +++ b/vars/pkgs/zls.yml @@ -0,0 +1,9 @@ +zls: + base_url: https://builds.zigtools.org + sysmap: + Darwin: macos + Linux: linux + archmap: + aarch64: aarch64 + arm64: aarch64 + x86_64: x86_64