https://github.com/dreknix/ansible-role-tool-deploy
Ansible role for deploying tools from GitHub, GitLab, and other sources.
https://github.com/dreknix/ansible-role-tool-deploy
ansible ansible-role install tools
Last synced: over 1 year ago
JSON representation
Ansible role for deploying tools from GitHub, GitLab, and other sources.
- Host: GitHub
- URL: https://github.com/dreknix/ansible-role-tool-deploy
- Owner: dreknix
- License: mit
- Created: 2025-01-08T08:16:02.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-11T08:07:17.000Z (over 1 year ago)
- Last Synced: 2025-03-11T08:35:25.018Z (over 1 year ago)
- Topics: ansible, ansible-role, install, tools
- Homepage:
- Size: 69.3 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ansible Role - Tool Deploy
Ansible role for deploying tools form GitHub, GitLab, and other sources.
**IMPORTANT:** This role is currently in development. It is only possible to
install tools from GitHub. More possibilities must be added.
## TODO
Tools to look into:
* [walles / moar](https://github.com/walles/moar)
* [jdx / mise](https://github.com/jdx/mise)
Features:
* compile install without package install
## Using in a Playbook
This Ansible will deploy tools specified in the variable `tool_deploy_list` to
your infrastructure. For each tool the source URL will be given by `url` or
`github.repo` and `github.file`. The role checks if the binary is present and
when `version.match` is provided, if the correct version of the tool is
installed. The installation can be forced with the flag `force_install`.
``` yaml
- name: Deploying tools
hosts: '{{ target | default("all") }}'
vars:
delta_version: 0.18.2
jq_version: 1.7.1
task_version: 3.42.1
tool_deploy_list:
delta:
# force_install: true
action: download_archive
github:
repo: dandavison/delta
file: >-
{{ delta_version }}/delta-{{ delta_version }}-x86_64-unknown-linux-gnu.tar.gz
version:
args: --version
match: "delta {{ delta_version }}"
bash_completion:
generate_args: --generate-completion bash
zsh_completion:
generate_args: --generate-completion zsh
jq:
# force_install: true
action: download_binary
github:
repo: jqlang/jq
file: >-
jq-{{ jq_version }}/jq-linux-amd64
version:
args: --version
match: "jq-{{ jq_version }}"
task:
# force_install: true
action: download_archive
github_repo: go-task/task
release_file: >-
v{{ task_version }}/task_linux_amd64.tar.gz
version:
args: --version
match: "Task version: v{{ task_version }}"
bash_completion:
src: completion/bash/task.bash
zsh_completion:
src: completion/zsh/_task
roles:
- role: dreknix.tool_deploy
```
The variable `tool_deploy_list` is a dictionary, so that this dictionary can be
defined in `group_vars`, but also be overwritten partially in `host_vars`. This
allows different versions of tools to be installed.
All tools described in the [example](#configuration-examples) section can be
referenced with `tool_deploy_default_config_XXXX`. The above playbook is
equivalent to the following playbook definition:
``` yaml
- name: Deploying tools
hosts: '{{ target | default("all") }}'
vars:
delta_version: 0.18.2
jq_version: 1.7.1
task_version: 3.42.1
pre_tasks:
- name: Set dictionary 'tool_deploy_list'
ansible.builtin.set_fact:
tool_deploy_list: >-
{{ tool_deploy_list | combine(tool) }}
loop_control:
loop_var: tool
label: "{{ tool.keys() }}"
loop:
- "{{ tool_deploy_default_config_delta }}"
- "{{ tool_deploy_default_config_jq }}"
- "{{ tool_deploy_default_config_task }}"
roles:
- role: dreknix.tool_deploy
```
## Install role via `roles/requirements.yml`
### Read-Only copy
Configure the role as read-only copy:
``` yaml
---
roles:
- name: dreknix.tool_deploy
src: https://github.com/dreknix/ansible-role-tool-deploy.git
scm: git
...
```
Install the role:
``` console
ansible-galaxy role install --force -r roles/requirements.yml
```
### Working copy
Configure the role as a working copy:
``` yaml
---
roles:
- name: dreknix.tool_deploy
src: git@github.com:dreknix/ansible-role-tool-deploy.git
scm: git
...
```
Install the working copy:
``` console
ansible-galaxy role install --force --keep-scm-meta -r roles/requirements.yml
```
## Configuration Examples
All this configuration examples are also defined in `vars/main/` for referencing
in playbooks.
### bat
[sharkdp / bat](https://github.com/sharkdp/bat)
``` yaml
bat_version: 0.25.0
tool_deploy_list:
bat:
action: download_archive
github:
repo: sharkdp/bat
file: "v{{ bat_version }}/bat-v{{ bat_version }}-x86_64-unknown-linux-gnu.tar.gz"
version:
args: --version
match: "bat {{ bat_version }}"
man_pages:
src: bat.1
bash_completion:
src: autocomplete/bat.bash
zsh_completion:
src: autocomplete/bat.zsh
```
### delta
[dandavison / delta](https://github.com/dandavison/delta)
``` yaml
delta_version: 0.18.2
tool_deploy_list:
delta:
# force_install: true
action: download_archive
github:
repo: dandavison/delta
file: >-
{{ delta_version }}/delta-{{ delta_version }}-x86_64-unknown-linux-gnu.tar.gz
version:
args: --version
match: "delta {{ delta_version }}"
bash_completion:
generate_args: --generate-completion bash
zsh_completion:
generate_args: --generate-completion zsh
```
### direnv
[direnv / direnv](https://github.com/direnv/direnv)
``` yaml
direnv_version: 2.35.0
tool_deploy_list:
direnv:
action: download_binary
github:
repo: direnv/direnv
file: "v{{ direnv_version }}/direnv.linux-amd64"
version:
args: version
match: "{{ direnv_version }}"
man_pages:
url:
- https://raw.githubusercontent.com/direnv/direnv/refs/heads/master/man/direnv.1
- https://raw.githubusercontent.com/direnv/direnv/refs/heads/master/man/direnv-fetchurl.1
- https://raw.githubusercontent.com/direnv/direnv/refs/heads/master/man/direnv-stdlib.1
- https://raw.githubusercontent.com/direnv/direnv/refs/heads/master/man/direnv.toml.1
```
### dive
[wagoodman / dive](https://github.com/wagoodman/dive)
``` yaml
dive_version: 0.12.0
tool_deploy_list:
dive:
action: download_archive
github:
repo: wagoodman/dive
file: "v{{ dive_version | mandatory }}/dive_{{ dive_version | mandatory }}_linux_amd64.tar.gz"
version:
args: --version
match: "dive {{ dive_version | mandatory }}"
```
### docker-credential-pass
[docker / docker-credential-helpers](https://github.com/docker/docker-credential-helpers)
``` yaml
docker_credential_version: 0.9.1
tool_deploy_list:
docker-credential-pass:
action: download_binary
github:
repo: docker/docker-credential-helpers
file: "v{{ docker_credential_version }}/docker-credential-pass_v{{ docker_credential_version }}.linux-amd64"
version:
args: --version
match: "v{{ docker_credential_version | mandatory }}"
```
### eza
[eza-community / eza](https://github.com/eza-community/eza)
``` yaml
eza_version: 0.20.24
tool_deploy_list:
eza:
action: download_archive
github:
repo: eza-community/eza
file: "v{{ eza_version }}/eza_x86_64-unknown-linux-gnu.tar.gz"
version:
args: --version
match: "v{{ eza_version }}"
```
### fd
[sharkdp / fd](https://github.com/sharkdp/fd)
``` yaml
fd_version: 10.2.0
tool_deploy_list:
fd:
action: download_archive
github:
repo: sharkdp/fd
file: "v{{ fd_version }}/fd-v{{ fd_version }}-x86_64-unknown-linux-gnu.tar.gz"
version:
args: --version
match: "fd {{ fd_version }}"
man_pages:
src: fd.1
bash_completion:
src: autocomplete/fd.bash
zsh_completion:
src: autocomplete/_fd
```
### fx
[antonmedv / fx](https://github.com/antonmedv/fx)
``` yaml
fx_version: 35.0.0
fx:
action: download_binary
github:
repo: antonmedv/fx
file: "{{ fx_version | mandatory }}/fx_linux_amd64"
version:
args: --version
match: "{{ fx_version | mandatory }}"
bash_completion:
generate_args: --comp bash
zsh_completion:
generate_args: --comp zsh
tool_deploy_list:
```
### fzf
[junegunn / fzf](https://github.com/junegunn/fzf)
``` yaml
fzf_version: 0.60.3
tool_deploy_list:
fzf:
action: download_archive
github:
repo: junegunn/fzf
file: "v{{ fzf_version }}/fzf-{{ fzf_version }}-linux_amd64.tar.gz"
version:
args: --version
match: "{{ fzf_version }} ("
man_pages:
url: https://raw.githubusercontent.com/junegunn/fzf/refs/heads/master/man/man1/fzf.1
bash_completion:
url: https://raw.githubusercontent.com/junegunn/fzf/refs/heads/master/shell/completion.bash
zsh_completion:
url: https://raw.githubusercontent.com/junegunn/fzf/refs/heads/master/shell/completion.zsh
```
### glow
[charmbracelet / glow](https://github.com/charmbracelet/glow)
``` yaml
glow_version: 2.1.0
tool_deploy_list:
glow:
action: download_archive
github:
repo: charmbracelet/glow
file: "v{{ glow_version | mandatory }}/glow_{{ glow_version }}_Linux_x86_64.tar.gz"
version:
args: --version
match: "glow version {{ glow_version | mandatory }}"
man_pages:
src:
- manpages/glow.1.gz
bash_completion:
src: completions/glow.bash
zsh_completion:
src: completions/glow.zsh
```
### gopass
[gopasspw / gopass](https://github.com/gopasspw/gopass)
``` yaml
gopass_version: 1.15.15
tool_deploy_list:
gopass:
action: download_archive
github:
repo: gopasspw/gopass
file: "v{{ gopass_version | mandatory }}/gopass-{{ gopass_version | mandatory }}-linux-amd64.tar.gz"
version:
args: version
match: "gopass {{ gopass_version | mandatory }}"
bash_completion:
src: bash.completion
zsh_completion:
src: zsh.completion
```
### gopass-jsonapi
[gopasspw / gopass-jsonapi](https://github.com/gopasspw/gopass-jsonapi)
``` yaml
gopass_jsonapi_version: 1.15.15
tool_deploy_list:
gopass-jsonapi:
action: download_archive
github:
repo: gopasspw/gopass-jsonapi
file: "v{{ gopass_jsonapi_version | mandatory }}/gopass-jsonapi-{{ gopass_jsonapi_version }}-linux-amd64.tar.gz"
version:
args: version
match: "gopass-jsonapi version {{ gopass_jsonapi_version | mandatory }}"
```
### gum
[charmbracelet / gum](https://github.com/charmbracelet/gum)
``` yaml
gum_version: 0.16.0
tool_deploy_list:
gum:
action: download_archive
github:
repo: charmbracelet/gum
file: "v{{ gum_version | mandatory }}/gum_{{ gum_version }}_Linux_x86_64.tar.gz"
version:
args: --version
match: "gum version v{{ gum_version | mandatory }}"
man_pages:
src:
- manpages/gum.1.gz
bash_completion:
src: completions/gum.bash
zsh_completion:
src: completions/gum.zsh
```
### hadolint
[hadolint / hadolint](https://github.com/hadolint/hadolint)
``` yaml
hadolint_version: 2.12.0
tool_deploy_list:
hadolint:
action: download_binary
github:
repo: hadolint/hadolint
file: "v{{ hadolint_version | mandatory }}/hadolint-Linux-x86_64"
version:
args: --version
match: "Haskell Dockerfile Linter {{ hadolint_version | mandatory }}"
```
### jq
[jqlang / jq](https://github.com/jqlang/jq)
``` yaml
jq_version: 1.7.1
tool_deploy_list:
jq:
action: download_binary
github:
repo: jqlang/jq
file: "jq-{{ jq_version }}/jq-linux-amd64"
version:
args: --version
match: "jq-{{ jq_version }}"
```
### KeePassXC
[keepassxreboot / keepassxc](https://github.com/keepassxreboot/keepassxc)
``` yaml
keepassxc_version: 2.7.9
tool_deploy_list:
keepassxc:
action: download_appimage
github:
repo: keepassxreboot/keepassxc
file: "{{ keepassxc_version | mandatory }}/KeePassXC-{{ keepassxc_version }}-x86_64.AppImage"
version:
args: --version
match: "keepassxc v{{ keepassxc_version | mandatory }}"
xdg_desktop:
src: squashfs-root/org.keepassxc.KeePassXC.desktop
svg: squashfs-root/keepassxc.svg
```
### kubectl
[kubectl](https://kubernetes.io/docs/reference/kubectl/)
``` yaml
kubectl_version: 1.32.2
tool_deploy_list:
kubectl:
action: download_binary
url: https://dl.k8s.io/release/v{{ kubectl_version }}/bin/linux/amd64/kubectl
version:
args: version --client=true
match: "Client Version: v{{ kubectl_version | mandatory }}"
bash_completion:
generate_args: completion bash
zsh_completion:
generate_args: completion zsh
```
### lazydocker
[jesseduffield / lazydocker](https://github.com/jesseduffield/lazydocker)
``` yaml
lazydocker_version: 0.24.1
tool_deploy_list:
lazydocker:
action: download_archive
github:
repo: jesseduffield/lazydocker
file: "v{{ lazydocker_version | mandatory }}/lazydocker_{{ lazydocker_version | mandatory }}_Linux_x86_64.tar.gz"
version:
args: --version
match: "version={{ lazydocker_version | mandatory }}"
```
### lazygit
[jesseduffield / lazygit](https://github.com/jesseduffield/lazygit)
``` yaml
lazygit_version: 0.48.0
tool_deploy_list:
lazygit:
action: download_archive
github:
repo: jesseduffield/lazygit
file: "v{{ lazygit_version | mandatory }}/lazygit_{{ lazygit_version | mandatory }}_Linux_x86_64.tar.gz"
version:
args: --version
match: "version={{ lazygit_version | mandatory }}"
```
### less
[less homepage](http://greenwoodsoftware.com/less/)
``` yaml
less_version: 668
tool_deploy_list:
less:
dependencies:
- build-essential
action: download_sources
url: http://greenwoodsoftware.com/less/less-{{ less_version }}.tar.gz
version:
args: --version
match: "less {{ less_version | mandatory }}"
build_steps:
- ./configure prefix={{ tool_deploy_prefix }}
- make
- make install
```
### lsd
[lsd-rs / lsd](https://github.com/lsd-rs/lsd)
``` yaml
lsd_version: 1.1.5
tool_deploy_list:
lsd:
action: download_archive
github:
repo: lsd-rs/lsd
file: v{{ lsd_version }}/lsd-v{{ lsd_version }}-x86_64-unknown-linux-gnu.tar.gz
version:
args: --version
match: "lsd {{ lsd_version }}"
man_pages:
src: lsd.1
bash_completion:
src: autocomplete/lsd.bash-completion
zsh_completion:
src: autocomplete/_lsd
```
### micro
[zyedidia / micro](https://github.com/zyedidia/micro)
``` yaml
micro_version: 2.0.14
tool_deploy_list:
micro:
action: download_archive
github:
repo: zyedidia/micro
file: "v{{ micro_version | mandatory }}/micro-{{ micro_version | mandatory }}-linux64-static.tar.gz"
version:
args: --version
match: "Version: {{ micro_version | mandatory }}"
```
### minikube
[kubernetes / minikube](https://github.com/jarun/minikube)
``` yaml
minikube_version: 1.35.0
tool_deploy_list:
minikube:
action: download_binary
github:
repo: kubernetes/minikube
file: "v{{ minikube_version | mandatory }}/minikube-linux-amd64"
version:
args: version
match: "minikube version: v{{ minikube_version | mandatory }}"
bash_completion:
generate_args: completion bash
zsh_completion:
generate_args: completion zsh
```
### moar
[walles / moar](https://github.com/walles/moar)
``` yaml
moar_version: 1.31.4
tool_deploy_list:
moar:
action: download_binary
github:
repo: walles/moar
file: "v{{ moar_version | mandatory }}/moar-v{{ moar_version }}-linux-amd64"
version:
args: --version
match: "{{ moar_version | mandatory }}"
man_pages:
url:
- https://raw.githubusercontent.com/walles/moar/refs/heads/master/moar.1
```
### nnn
[jarun / nnn](https://github.com/jarun/nnn)
``` yaml
nnn_version: 5.0
tool_deploy_list:
nnn:
action: download_archive
github:
repo: jarun/nnn
file: "v{{ nnn_version | mandatory }}/nnn-nerd-static-{{ nnn_version | mandatory }}.x86_64.tar.gz"
binary_name_in_archive: nnn-nerd-static
version:
args: -V
match: "{{ nnn_version | mandatory }}"
man_pages:
url: "https://raw.githubusercontent.com/jarun/nnn/refs/heads/master/nnn.1"
bash_completion:
url: "https://raw.githubusercontent.com/jarun/nnn/refs/heads/master/misc/auto-completion/bash/nnn-completion.bash"
zsh_completion:
url: "https://raw.githubusercontent.com/jarun/nnn/refs/heads/master/misc/auto-completion/zsh/_nnn"
```
### neovim / nvim
[neovim / neovim](https://github.com/neovim/neovim)
``` yaml
nvim_version: 0.10.4
tool_deploy_list:
nvim:
action: download_appimage
github:
repo: neovim/neovim
file: "v{{ nvim_version | mandatory }}/nvim-linux-x86_64.appimage"
version:
args: --version
match: "NVIM v{{ nvim_version | mandatory }}"
xdg_desktop:
src: squashfs-root/nvim.desktop
icon: squashfs-root/nvim.png
man_pages:
src: squashfs-root/usr/share/man/man1/nvim.1
```
### oh-my-posh
[JanDeDobbeleer / oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh)
``` yaml
oh_my_posh_version: 25.0.0
tool_deploy_list:
oh-my-posh:
action: download_binary
github:
repo: JanDeDobbeleer/oh-my-posh
file: "v{{ oh_my_posh_version | mandatory }}/posh-linux-amd64"
version:
args: --version
match: "{{ oh_my_posh_version | mandatory }}"
```
### pet
[knqyf263 / pet](https://github.com/knqyf263/pet)
``` yaml
pet_version: 1.0.1
tool_deploy_list:
pet:
action: download_archive
github:
repo: knqyf263/pet
file: "v{{ pet_version | mandatory }}/pet_{{ pet_version | mandatory }}_linux_amd64.tar.gz"
version:
args: version
match: "pet version {{ pet_version | mandatory }}"
zsh_completion:
src: misc/completions/zsh/_pet
```
### restic
[restic / restic](https://github.com/restic/restic)
``` yaml
restic_version: 0.17.3
tool_deploy_list:
restic:
action: download_binary
github:
repo: restic/restic
file: "v{{ restic_version | mandatory }}/restic_{{ restic_version | mandatory }}_linux_amd64.bz2"
version:
args: version
match: "restic {{ restic_version | mandatory }}"
man_pages:
url:
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-backup.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-cache.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-cat.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-check.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-copy.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-diff.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-dump.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-features.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-find.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-forget.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-generate.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-init.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key-add.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key-list.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key-passwd.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key-remove.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-list.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-ls.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-migrate.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-mount.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-options.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-prune.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-recover.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-repair-index.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-repair-packs.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-repair-snapshots.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-repair.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-restore.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-rewrite.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-self-update.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-snapshots.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-stats.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-tag.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-unlock.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-version.1
- https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic.1
bash_completion:
generate_args: generate --bash-completion /dev/stdout
zsh_completion:
generate_args: generate --zsh-completion /dev/stdout
```
### ripgrep / rg
[BurntSushi / ripgrep](https://github.com/BurntSushi/ripgrep)
``` yaml
rg_version: 14.1.1
tool_deploy_list:
rg:
action: download_archive
github:
repo: BurntSushi/ripgrep
file: "{{ rg_version }}/ripgrep-{{ rg_version }}-x86_64-unknown-linux-musl.tar.gz"
version:
args: --version
match: "ripgrep {{ rg_version }} ("
man_pages:
src: doc/rg.1
bash_completion:
src: complete/rg.bash
zsh_completion:
src: complete/_rg
```
### sqlitebrowser
[sqlitebrowser / sqlitebrowser](https://github.com/sqlitebrowser/sqlitebrowser)
``` yaml
sqlitebrowser_version: 3.13.1
tool_deploy_list:
sqlitebrowser:
action: download_appimage
github:
repo: keepassxreboot/sqlitebrowser
file: "v{{ sqlitebrowser_version }}/DB.Browser.for.SQLite-v{{ sqlitebrowser_version }}-x86_64-v2.AppImage"
version:
args: --version
match: "DB Browser for SQLite Version {{ sqlitebrowser_version | mandatory }}"
xdg_desktop:
src: squashfs-root/sqlitebrowser.desktop
svg: squashfs-root/sqlitebrowser.svg
```
### talosctl
[siderolabs / talos](https://github.com/siderolabs/talos)
``` yaml
talosctl_version: 1.9.4
tool_deploy_list:
talosctl:
action: download_binary
github:
repo: siderolabs/talos
file: "v{{ talosctl_version | mandatory }}/talosctl-linux-amd64"
version:
args: version --client
match: "{{ talosctl_version | mandatory }}"
bash_completion:
generate_args: completion bash
zsh_completion:
generate_args: completion zsh
```
### task
[go-task / task](https://github.com/go-task/task)
``` yaml
task_version: 3.42.1
tool_deploy_list:
task:
action: download_archive
github:
repo: go-task/task
file: "v{{ task_version }}/task_linux_amd64.tar.gz"
version:
args: --version
match: "Task version: v{{ task_version }}"
bash_completion:
src: completion/bash/task.bash
zsh_completion:
src: completion/zsh/_task
```
### tig
[jonas / tig](https://github.com/jonas/tig)
``` yaml
tig_version: 2.5.12
tool_deploy_list:
tig:
dependencies:
- build-essential
- ncurses-dev
- pkg-config
action: download_sources
github:
repo: jonas/tig
file: "tig-{{ tig_version | mandatory }}/tig-{{ tig_version | mandatory }}.tar.gz"
version:
args: --version
match: "tig version {{ tig_version | mandatory }}"
build_steps:
- ./configure prefix={{ tool_deploy_prefix }}
- make
- make install
- make install-doc-man
```
### tmux
[tmux / tmux](https://github.com/tmux/tmux)
``` yaml
tmux_version: 3.5a
tool_deploy_list:
tmux:
dependencies:
- build-essential
- ncurses-dev
- libevent-dev
- pkg-config
- bison
action: download_sources
github:
repo: tmux/tmux
file: "{{ tmux_version | mandatory }}/tmux-{{ tmux_version | mandatory }}.tar.gz"
version:
args: -V
match: "tmux {{ tmux_version | mandatory }}"
build_steps:
- ./configure prefix={{ tool_deploy_prefix }}
- make
- make install
```
### uv
[astral-sh / uv](https://github.com/astral-sh/uv)
``` yaml
uv_version: 0.6.6
tool_deploy_list:
uv:
action: download_archive
github:
repo: astral-sh/uv
file: "{{ uv_version | mandatory }}/uv-x86_64-unknown-linux-gnu.tar.gz"
version:
args: --version
match: "uv {{ uv_version | mandatory }}"
copy_files:
- src: uvx
mode: u=rwx,go=rx
```
### vhs
[charmbracelet / vhs](https://github.com/charmbracelet/vhs)
``` yaml
vhs_version: 0.9.0
tool_deploy_list:
vhs:
action: download_archive
github:
repo: charmbracelet/vhs
file: "v{{ vhs_version | mandatory }}/vhs_{{ vhs_version }}_Linux_x86_64.tar.gz"
version:
args: --version
match: "vhs version v{{ vhs_version | mandatory }}"
man_pages:
src:
- manpages/vhs.1.gz
bash_completion:
src: completions/vhs.bash
zsh_completion:
src: completions/vhs.zsh
```
### xh
[ducaale / xh](https://github.com/ducaale/xh)
``` yaml
xh_version: 0.24.0
tool_deploy_list:
xh:
action: download_archive
github:
repo: ducaale/xh
file: "v{{ xh_version | mandatory }}/xh-{{ xh_version }}-x86_64-unknown-linux-musl.tar.gz"
version:
args: --version
match: "xh {{ xh_version | mandatory }}"
create_links:
- src: xh
dest: xhs
man_pages:
src: doc/xh.1
bash_completion:
src: completions/xh.bash
zsh_completion:
src: completions/_xh
```
### xq
[sibprogrammer / xq](https://github.com/sibprogrammer/xq)
``` yaml
xq_version: 1.3.0
tool_deploy_list:
xq:
action: download_archive
github:
repo: sibprogrammer/xq
file: "v{{ xq_version | mandatory }}/xq_{{ xq_version | mandatory }}_linux_amd64.tar.gz"
version:
args: --version
match: "xq version {{ xq_version | mandatory }}"
```
### yq
[mikefarah / yq](https://github.com/mikefarah/yq)
``` yaml
yq_version: 4.45.1
tool_deploy_list:
yq:
action: download_binary
github:
repo: mikefarah/yq
file: "v{{ yq_version | mandatory }}/yq_linux_amd64"
version:
args: --version
match: "version v{{ yq_version | mandatory }}"
```
### zoxide
[ajeetdsouza / zoxide](https://github.com/ajeetdsouza/zoxide)
``` yaml
zoxide_version: 0.9.7
tool_deploy_list:
zoxide:
action: download_archive
github:
repo: ajeetdsouza/zoxide
file: "v{{ zoxide_version }}/zoxide-{{ zoxide_version }}-x86_64-unknown-linux-musl.tar.gz"
version:
args: --version
match: "zoxide {{ zoxide_version }}"
man_pages:
src:
- man/man1/zoxide.1
- man/man1/zoxide-add.1
- man/man1/zoxide-import.1
- man/man1/zoxide-init.1
- man/man1/zoxide-query.1
- man/man1/zoxide-remove.1
bash_completion:
src: completions/zoxide.bash
zsh_completion:
src: completions/_zoxide
```
## License
[MIT](https://github.com/dreknix/ansible-role-tool-deploy/blob/main/LICENSE)