{"id":24576160,"url":"https://github.com/dreknix/ansible-role-tool-deploy","last_synced_at":"2025-03-17T12:41:47.648Z","repository":{"id":271561403,"uuid":"913718344","full_name":"dreknix/ansible-role-tool-deploy","owner":"dreknix","description":" Ansible role for deploying tools from GitHub, GitLab, and other sources.","archived":false,"fork":false,"pushed_at":"2025-03-11T08:07:17.000Z","size":71,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T08:35:25.018Z","etag":null,"topics":["ansible","ansible-role","install","tools"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dreknix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-08T08:16:02.000Z","updated_at":"2025-03-11T08:07:20.000Z","dependencies_parsed_at":"2025-01-31T10:24:48.058Z","dependency_job_id":"0b562489-92b0-4d1b-a4a8-2d289abb7af7","html_url":"https://github.com/dreknix/ansible-role-tool-deploy","commit_stats":null,"previous_names":["dreknix/ansible-role-tool-deploy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fansible-role-tool-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fansible-role-tool-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fansible-role-tool-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fansible-role-tool-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dreknix","download_url":"https://codeload.github.com/dreknix/ansible-role-tool-deploy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244036190,"owners_count":20387471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-role","install","tools"],"created_at":"2025-01-23T22:21:51.510Z","updated_at":"2025-03-17T12:41:47.641Z","avatar_url":"https://github.com/dreknix.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ansible Role - Tool Deploy\n\nAnsible role for deploying tools form GitHub, GitLab, and other sources.\n\n**IMPORTANT:** This role is currently in development. It is only possible to\ninstall tools from GitHub. More possibilities must be added.\n\n## TODO\n\nTools to look into:\n\n* [walles / moar](https://github.com/walles/moar)\n* [jdx / mise](https://github.com/jdx/mise)\n\nFeatures:\n\n* compile install without package install\n\n## Using in a Playbook\n\nThis Ansible will deploy tools specified in the variable `tool_deploy_list` to\nyour infrastructure. For each tool the source URL will be given by `url` or\n`github.repo` and `github.file`. The role checks if the binary is present and\nwhen `version.match` is provided, if the correct version of the tool is\ninstalled. The installation can be forced with the flag `force_install`.\n\n``` yaml\n- name: Deploying tools\n  hosts: '{{ target | default(\"all\") }}'\n  vars:\n\n    delta_version: 0.18.2\n    jq_version: 1.7.1\n    task_version: 3.42.1\n\n    tool_deploy_list:\n\n      delta:\n        # force_install: true\n        action: download_archive\n        github:\n          repo: dandavison/delta\n          file: \u003e-\n            {{ delta_version }}/delta-{{ delta_version }}-x86_64-unknown-linux-gnu.tar.gz\n        version:\n          args: --version\n          match: \"delta {{ delta_version }}\"\n        bash_completion:\n          generate_args: --generate-completion bash\n        zsh_completion:\n          generate_args: --generate-completion zsh\n\n      jq:\n        # force_install: true\n        action: download_binary\n        github:\n          repo: jqlang/jq\n          file: \u003e-\n            jq-{{ jq_version }}/jq-linux-amd64\n        version:\n          args: --version\n          match: \"jq-{{ jq_version }}\"\n\n      task:\n        # force_install: true\n        action: download_archive\n        github_repo: go-task/task\n        release_file: \u003e-\n          v{{ task_version }}/task_linux_amd64.tar.gz\n        version:\n          args: --version\n          match: \"Task version: v{{ task_version }}\"\n        bash_completion:\n          src: completion/bash/task.bash\n        zsh_completion:\n          src: completion/zsh/_task\n\n  roles:\n    - role: dreknix.tool_deploy\n```\n\nThe variable `tool_deploy_list` is a dictionary, so that this dictionary can be\ndefined in `group_vars`, but also be overwritten partially in `host_vars`. This\nallows different versions of tools to be installed.\n\nAll tools described in the [example](#configuration-examples) section can be\nreferenced with `tool_deploy_default_config_XXXX`. The above playbook is\nequivalent to the following playbook definition:\n\n``` yaml\n- name: Deploying tools\n  hosts: '{{ target | default(\"all\") }}'\n  vars:\n    delta_version: 0.18.2\n    jq_version: 1.7.1\n    task_version: 3.42.1\n\n  pre_tasks:\n    - name: Set dictionary 'tool_deploy_list'\n      ansible.builtin.set_fact:\n        tool_deploy_list: \u003e-\n          {{ tool_deploy_list | combine(tool) }}\n      loop_control:\n        loop_var: tool\n        label: \"{{ tool.keys() }}\"\n      loop:\n        - \"{{ tool_deploy_default_config_delta }}\"\n        - \"{{ tool_deploy_default_config_jq }}\"\n        - \"{{ tool_deploy_default_config_task }}\"\n\n  roles:\n    - role: dreknix.tool_deploy\n```\n\n## Install role via `roles/requirements.yml`\n\n### Read-Only copy\n\nConfigure the role as read-only copy:\n\n``` yaml\n---\nroles:\n  - name: dreknix.tool_deploy\n    src: https://github.com/dreknix/ansible-role-tool-deploy.git\n    scm: git\n...\n```\n\nInstall the role:\n\n``` console\nansible-galaxy role install --force -r roles/requirements.yml\n```\n\n### Working copy\n\nConfigure the role as a working copy:\n\n``` yaml\n---\nroles:\n  - name: dreknix.tool_deploy\n    src: git@github.com:dreknix/ansible-role-tool-deploy.git\n    scm: git\n...\n```\n\nInstall the working copy:\n\n``` console\nansible-galaxy role install --force --keep-scm-meta -r roles/requirements.yml\n```\n\n## Configuration Examples\n\nAll this configuration examples are also defined in `vars/main/` for referencing\nin playbooks.\n\n### bat\n\n[sharkdp / bat](https://github.com/sharkdp/bat)\n\n``` yaml\nbat_version: 0.25.0\n\ntool_deploy_list:\n  bat:\n    action: download_archive\n    github:\n      repo: sharkdp/bat\n      file: \"v{{ bat_version }}/bat-v{{ bat_version }}-x86_64-unknown-linux-gnu.tar.gz\"\n    version:\n      args: --version\n      match: \"bat {{ bat_version }}\"\n    man_pages:\n      src: bat.1\n    bash_completion:\n      src: autocomplete/bat.bash\n    zsh_completion:\n      src: autocomplete/bat.zsh\n```\n\n### delta\n\n[dandavison / delta](https://github.com/dandavison/delta)\n\n``` yaml\ndelta_version: 0.18.2\n\ntool_deploy_list:\n  delta:\n    # force_install: true\n    action: download_archive\n    github:\n      repo: dandavison/delta\n      file: \u003e-\n        {{ delta_version }}/delta-{{ delta_version }}-x86_64-unknown-linux-gnu.tar.gz\n    version:\n      args: --version\n      match: \"delta {{ delta_version }}\"\n    bash_completion:\n      generate_args: --generate-completion bash\n    zsh_completion:\n      generate_args: --generate-completion zsh\n```\n\n### direnv\n\n[direnv / direnv](https://github.com/direnv/direnv)\n\n``` yaml\ndirenv_version: 2.35.0\n\ntool_deploy_list:\n  direnv:\n    action: download_binary\n    github:\n      repo: direnv/direnv\n      file: \"v{{ direnv_version }}/direnv.linux-amd64\"\n    version:\n      args: version\n      match: \"{{ direnv_version }}\"\n    man_pages:\n      url:\n        - https://raw.githubusercontent.com/direnv/direnv/refs/heads/master/man/direnv.1\n        - https://raw.githubusercontent.com/direnv/direnv/refs/heads/master/man/direnv-fetchurl.1\n        - https://raw.githubusercontent.com/direnv/direnv/refs/heads/master/man/direnv-stdlib.1\n        - https://raw.githubusercontent.com/direnv/direnv/refs/heads/master/man/direnv.toml.1\n```\n\n### dive\n\n[wagoodman / dive](https://github.com/wagoodman/dive)\n\n``` yaml\ndive_version: 0.12.0\n\ntool_deploy_list:\n  dive:\n    action: download_archive\n    github:\n      repo: wagoodman/dive\n      file: \"v{{ dive_version | mandatory }}/dive_{{ dive_version | mandatory }}_linux_amd64.tar.gz\"\n    version:\n      args: --version\n      match: \"dive {{ dive_version | mandatory }}\"\n```\n\n### docker-credential-pass\n\n[docker / docker-credential-helpers](https://github.com/docker/docker-credential-helpers)\n\n``` yaml\ndocker_credential_version: 0.9.1\n\ntool_deploy_list:\n  docker-credential-pass:\n    action: download_binary\n    github:\n      repo: docker/docker-credential-helpers\n      file: \"v{{ docker_credential_version }}/docker-credential-pass_v{{ docker_credential_version }}.linux-amd64\"\n    version:\n      args: --version\n      match: \"v{{ docker_credential_version | mandatory }}\"\n```\n\n### eza\n\n[eza-community / eza](https://github.com/eza-community/eza)\n\n``` yaml\neza_version: 0.20.24\n\ntool_deploy_list:\n  eza:\n    action: download_archive\n    github:\n      repo: eza-community/eza\n      file: \"v{{ eza_version }}/eza_x86_64-unknown-linux-gnu.tar.gz\"\n    version:\n      args: --version\n      match: \"v{{ eza_version }}\"\n```\n\n### fd\n\n[sharkdp / fd](https://github.com/sharkdp/fd)\n\n``` yaml\nfd_version: 10.2.0\n\ntool_deploy_list:\n  fd:\n    action: download_archive\n    github:\n      repo: sharkdp/fd\n      file: \"v{{ fd_version }}/fd-v{{ fd_version }}-x86_64-unknown-linux-gnu.tar.gz\"\n    version:\n      args: --version\n      match: \"fd {{ fd_version }}\"\n    man_pages:\n      src: fd.1\n    bash_completion:\n      src: autocomplete/fd.bash\n    zsh_completion:\n      src: autocomplete/_fd\n```\n\n### fx\n\n[antonmedv / fx](https://github.com/antonmedv/fx)\n\n``` yaml\nfx_version: 35.0.0\n  fx:\n    action: download_binary\n    github:\n      repo: antonmedv/fx\n      file: \"{{ fx_version | mandatory }}/fx_linux_amd64\"\n    version:\n      args: --version\n      match: \"{{ fx_version | mandatory }}\"\n    bash_completion:\n      generate_args: --comp bash\n    zsh_completion:\n      generate_args: --comp zsh\n\ntool_deploy_list:\n```\n\n### fzf\n\n[junegunn / fzf](https://github.com/junegunn/fzf)\n\n``` yaml\nfzf_version: 0.60.3\n\ntool_deploy_list:\n  fzf:\n    action: download_archive\n    github:\n      repo: junegunn/fzf\n      file: \"v{{ fzf_version }}/fzf-{{ fzf_version }}-linux_amd64.tar.gz\"\n    version:\n      args: --version\n      match: \"{{ fzf_version }} (\"\n    man_pages:\n      url: https://raw.githubusercontent.com/junegunn/fzf/refs/heads/master/man/man1/fzf.1\n    bash_completion:\n      url: https://raw.githubusercontent.com/junegunn/fzf/refs/heads/master/shell/completion.bash\n    zsh_completion:\n      url: https://raw.githubusercontent.com/junegunn/fzf/refs/heads/master/shell/completion.zsh\n```\n\n### glow\n\n[charmbracelet / glow](https://github.com/charmbracelet/glow)\n\n``` yaml\nglow_version: 2.1.0\n\ntool_deploy_list:\n  glow:\n    action: download_archive\n    github:\n      repo: charmbracelet/glow\n      file: \"v{{ glow_version | mandatory }}/glow_{{ glow_version }}_Linux_x86_64.tar.gz\"\n    version:\n      args: --version\n      match: \"glow version {{ glow_version | mandatory }}\"\n    man_pages:\n      src:\n        - manpages/glow.1.gz\n    bash_completion:\n      src: completions/glow.bash\n    zsh_completion:\n      src: completions/glow.zsh\n```\n\n### gopass\n\n[gopasspw / gopass](https://github.com/gopasspw/gopass)\n\n``` yaml\ngopass_version: 1.15.15\n\ntool_deploy_list:\n  gopass:\n    action: download_archive\n    github:\n      repo: gopasspw/gopass\n      file: \"v{{ gopass_version | mandatory }}/gopass-{{ gopass_version | mandatory }}-linux-amd64.tar.gz\"\n    version:\n      args: version\n      match: \"gopass {{ gopass_version | mandatory }}\"\n    bash_completion:\n      src: bash.completion\n    zsh_completion:\n      src: zsh.completion\n```\n\n### gopass-jsonapi\n\n[gopasspw / gopass-jsonapi](https://github.com/gopasspw/gopass-jsonapi)\n\n``` yaml\ngopass_jsonapi_version: 1.15.15\n\ntool_deploy_list:\n  gopass-jsonapi:\n    action: download_archive\n    github:\n      repo: gopasspw/gopass-jsonapi\n      file: \"v{{ gopass_jsonapi_version | mandatory }}/gopass-jsonapi-{{ gopass_jsonapi_version }}-linux-amd64.tar.gz\"\n    version:\n      args: version\n      match: \"gopass-jsonapi version {{ gopass_jsonapi_version | mandatory }}\"\n```\n\n### gum\n\n[charmbracelet / gum](https://github.com/charmbracelet/gum)\n\n``` yaml\ngum_version: 0.16.0\n\ntool_deploy_list:\n  gum:\n    action: download_archive\n    github:\n      repo: charmbracelet/gum\n      file: \"v{{ gum_version | mandatory }}/gum_{{ gum_version }}_Linux_x86_64.tar.gz\"\n    version:\n      args: --version\n      match: \"gum version v{{ gum_version | mandatory }}\"\n    man_pages:\n      src:\n        - manpages/gum.1.gz\n    bash_completion:\n      src: completions/gum.bash\n    zsh_completion:\n      src: completions/gum.zsh\n```\n\n### hadolint\n\n[hadolint / hadolint](https://github.com/hadolint/hadolint)\n\n``` yaml\nhadolint_version: 2.12.0\n\ntool_deploy_list:\n  hadolint:\n    action: download_binary\n    github:\n      repo: hadolint/hadolint\n      file: \"v{{ hadolint_version | mandatory }}/hadolint-Linux-x86_64\"\n    version:\n      args: --version\n      match: \"Haskell Dockerfile Linter {{ hadolint_version | mandatory }}\"\n```\n\n### jq\n\n[jqlang / jq](https://github.com/jqlang/jq)\n\n``` yaml\njq_version: 1.7.1\n\ntool_deploy_list:\n  jq:\n    action: download_binary\n    github:\n      repo: jqlang/jq\n      file: \"jq-{{ jq_version }}/jq-linux-amd64\"\n    version:\n      args: --version\n      match: \"jq-{{ jq_version }}\"\n```\n\n### KeePassXC\n\n[keepassxreboot / keepassxc](https://github.com/keepassxreboot/keepassxc)\n\n``` yaml\nkeepassxc_version: 2.7.9\n\ntool_deploy_list:\n  keepassxc:\n    action: download_appimage\n    github:\n      repo: keepassxreboot/keepassxc\n      file: \"{{ keepassxc_version | mandatory }}/KeePassXC-{{ keepassxc_version }}-x86_64.AppImage\"\n    version:\n      args: --version\n      match: \"keepassxc v{{ keepassxc_version | mandatory }}\"\n    xdg_desktop:\n      src: squashfs-root/org.keepassxc.KeePassXC.desktop\n      svg: squashfs-root/keepassxc.svg\n```\n\n### kubectl\n\n[kubectl](https://kubernetes.io/docs/reference/kubectl/)\n\n``` yaml\nkubectl_version: 1.32.2\n\ntool_deploy_list:\n  kubectl:\n    action: download_binary\n    url: https://dl.k8s.io/release/v{{ kubectl_version }}/bin/linux/amd64/kubectl\n    version:\n      args: version --client=true\n      match: \"Client Version: v{{ kubectl_version | mandatory }}\"\n    bash_completion:\n      generate_args: completion bash\n    zsh_completion:\n      generate_args: completion zsh\n```\n\n### lazydocker\n\n[jesseduffield / lazydocker](https://github.com/jesseduffield/lazydocker)\n\n``` yaml\nlazydocker_version: 0.24.1\n\ntool_deploy_list:\n  lazydocker:\n    action: download_archive\n    github:\n      repo: jesseduffield/lazydocker\n      file: \"v{{ lazydocker_version | mandatory }}/lazydocker_{{ lazydocker_version | mandatory }}_Linux_x86_64.tar.gz\"\n    version:\n      args: --version\n      match: \"version={{ lazydocker_version | mandatory }}\"\n```\n\n### lazygit\n\n[jesseduffield / lazygit](https://github.com/jesseduffield/lazygit)\n\n``` yaml\nlazygit_version: 0.48.0\n\ntool_deploy_list:\n  lazygit:\n    action: download_archive\n    github:\n      repo: jesseduffield/lazygit\n      file: \"v{{ lazygit_version | mandatory }}/lazygit_{{ lazygit_version | mandatory }}_Linux_x86_64.tar.gz\"\n    version:\n      args: --version\n      match: \"version={{ lazygit_version | mandatory }}\"\n```\n\n### less\n\n[less homepage](http://greenwoodsoftware.com/less/)\n\n``` yaml\nless_version: 668\n\ntool_deploy_list:\n  less:\n    dependencies:\n      - build-essential\n    action: download_sources\n    url: http://greenwoodsoftware.com/less/less-{{ less_version }}.tar.gz\n    version:\n      args: --version\n      match: \"less {{ less_version | mandatory }}\"\n    build_steps:\n      - ./configure prefix={{ tool_deploy_prefix }}\n      - make\n      - make install\n```\n\n### lsd\n\n[lsd-rs / lsd](https://github.com/lsd-rs/lsd)\n\n``` yaml\nlsd_version: 1.1.5\n\ntool_deploy_list:\n  lsd:\n    action: download_archive\n    github:\n      repo: lsd-rs/lsd\n      file: v{{ lsd_version }}/lsd-v{{ lsd_version }}-x86_64-unknown-linux-gnu.tar.gz\n    version:\n      args: --version\n      match: \"lsd {{ lsd_version }}\"\n    man_pages:\n      src: lsd.1\n    bash_completion:\n      src: autocomplete/lsd.bash-completion\n    zsh_completion:\n      src: autocomplete/_lsd\n```\n\n### micro\n\n[zyedidia / micro](https://github.com/zyedidia/micro)\n\n``` yaml\nmicro_version: 2.0.14\n\ntool_deploy_list:\n  micro:\n    action: download_archive\n    github:\n      repo: zyedidia/micro\n      file: \"v{{ micro_version | mandatory }}/micro-{{ micro_version | mandatory }}-linux64-static.tar.gz\"\n    version:\n      args: --version\n      match: \"Version: {{ micro_version | mandatory }}\"\n```\n\n### minikube\n\n[kubernetes / minikube](https://github.com/jarun/minikube)\n\n``` yaml\nminikube_version: 1.35.0\n\ntool_deploy_list:\n  minikube:\n    action: download_binary\n    github:\n      repo: kubernetes/minikube\n      file: \"v{{ minikube_version | mandatory }}/minikube-linux-amd64\"\n    version:\n      args: version\n      match: \"minikube version: v{{ minikube_version | mandatory }}\"\n    bash_completion:\n      generate_args: completion bash\n    zsh_completion:\n      generate_args: completion zsh\n```\n\n### moar\n\n[walles / moar](https://github.com/walles/moar)\n\n``` yaml\nmoar_version: 1.31.4\n\ntool_deploy_list:\n  moar:\n    action: download_binary\n    github:\n      repo: walles/moar\n      file: \"v{{ moar_version | mandatory }}/moar-v{{ moar_version }}-linux-amd64\"\n    version:\n      args: --version\n      match: \"{{ moar_version | mandatory }}\"\n    man_pages:\n      url:\n        - https://raw.githubusercontent.com/walles/moar/refs/heads/master/moar.1\n```\n\n### nnn\n\n[jarun / nnn](https://github.com/jarun/nnn)\n\n``` yaml\nnnn_version: 5.0\n\ntool_deploy_list:\n  nnn:\n    action: download_archive\n    github:\n      repo: jarun/nnn\n      file: \"v{{ nnn_version | mandatory }}/nnn-nerd-static-{{ nnn_version | mandatory }}.x86_64.tar.gz\"\n    binary_name_in_archive: nnn-nerd-static\n    version:\n      args: -V\n      match: \"{{ nnn_version | mandatory }}\"\n    man_pages:\n      url: \"https://raw.githubusercontent.com/jarun/nnn/refs/heads/master/nnn.1\"\n    bash_completion:\n      url: \"https://raw.githubusercontent.com/jarun/nnn/refs/heads/master/misc/auto-completion/bash/nnn-completion.bash\"\n    zsh_completion:\n      url: \"https://raw.githubusercontent.com/jarun/nnn/refs/heads/master/misc/auto-completion/zsh/_nnn\"\n```\n\n### neovim / nvim\n\n[neovim / neovim](https://github.com/neovim/neovim)\n\n``` yaml\nnvim_version: 0.10.4\n\ntool_deploy_list:\n  nvim:\n    action: download_appimage\n    github:\n      repo: neovim/neovim\n      file: \"v{{ nvim_version | mandatory }}/nvim-linux-x86_64.appimage\"\n    version:\n      args: --version\n      match: \"NVIM v{{ nvim_version | mandatory }}\"\n    xdg_desktop:\n      src: squashfs-root/nvim.desktop\n      icon: squashfs-root/nvim.png\n    man_pages:\n      src: squashfs-root/usr/share/man/man1/nvim.1\n```\n\n### oh-my-posh\n\n[JanDeDobbeleer / oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh)\n\n``` yaml\noh_my_posh_version: 25.0.0\n\ntool_deploy_list:\n  oh-my-posh:\n    action: download_binary\n    github:\n      repo: JanDeDobbeleer/oh-my-posh\n      file: \"v{{ oh_my_posh_version | mandatory }}/posh-linux-amd64\"\n    version:\n      args: --version\n      match: \"{{ oh_my_posh_version | mandatory }}\"\n```\n\n### pet\n\n[knqyf263 / pet](https://github.com/knqyf263/pet)\n\n``` yaml\npet_version: 1.0.1\n\ntool_deploy_list:\n  pet:\n    action: download_archive\n    github:\n      repo: knqyf263/pet\n      file: \"v{{ pet_version | mandatory }}/pet_{{ pet_version | mandatory }}_linux_amd64.tar.gz\"\n    version:\n      args: version\n      match: \"pet version {{ pet_version | mandatory }}\"\n    zsh_completion:\n      src: misc/completions/zsh/_pet\n```\n\n### restic\n\n[restic / restic](https://github.com/restic/restic)\n\n``` yaml\nrestic_version: 0.17.3\n\ntool_deploy_list:\n  restic:\n    action: download_binary\n    github:\n      repo: restic/restic\n      file: \"v{{ restic_version | mandatory }}/restic_{{ restic_version | mandatory }}_linux_amd64.bz2\"\n    version:\n      args: version\n      match: \"restic {{ restic_version | mandatory }}\"\n    man_pages:\n      url:\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-backup.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-cache.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-cat.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-check.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-copy.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-diff.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-dump.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-features.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-find.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-forget.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-generate.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-init.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key-add.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key-list.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key-passwd.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key-remove.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-key.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-list.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-ls.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-migrate.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-mount.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-options.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-prune.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-recover.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-repair-index.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-repair-packs.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-repair-snapshots.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-repair.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-restore.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-rewrite.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-self-update.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-snapshots.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-stats.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-tag.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-unlock.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic-version.1\n        - https://raw.githubusercontent.com/restic/restic/refs/heads/master/doc/man/restic.1\n    bash_completion:\n      generate_args: generate --bash-completion /dev/stdout\n    zsh_completion:\n      generate_args: generate --zsh-completion /dev/stdout\n```\n\n### ripgrep / rg\n\n[BurntSushi / ripgrep](https://github.com/BurntSushi/ripgrep)\n\n``` yaml\nrg_version: 14.1.1\n\ntool_deploy_list:\n  rg:\n    action: download_archive\n    github:\n      repo: BurntSushi/ripgrep\n      file: \"{{ rg_version }}/ripgrep-{{ rg_version }}-x86_64-unknown-linux-musl.tar.gz\"\n    version:\n      args: --version\n      match: \"ripgrep {{ rg_version }} (\"\n    man_pages:\n      src: doc/rg.1\n    bash_completion:\n      src: complete/rg.bash\n    zsh_completion:\n      src: complete/_rg\n```\n\n### sqlitebrowser\n\n[sqlitebrowser / sqlitebrowser](https://github.com/sqlitebrowser/sqlitebrowser)\n\n``` yaml\nsqlitebrowser_version: 3.13.1\n\ntool_deploy_list:\n  sqlitebrowser:\n    action: download_appimage\n    github:\n      repo: keepassxreboot/sqlitebrowser\n      file: \"v{{ sqlitebrowser_version }}/DB.Browser.for.SQLite-v{{ sqlitebrowser_version }}-x86_64-v2.AppImage\"\n    version:\n      args: --version\n      match: \"DB Browser for SQLite Version {{ sqlitebrowser_version | mandatory }}\"\n    xdg_desktop:\n      src: squashfs-root/sqlitebrowser.desktop\n      svg: squashfs-root/sqlitebrowser.svg\n```\n\n### talosctl\n\n[siderolabs / talos](https://github.com/siderolabs/talos)\n\n``` yaml\ntalosctl_version: 1.9.4\n\ntool_deploy_list:\n  talosctl:\n    action: download_binary\n    github:\n      repo: siderolabs/talos\n      file: \"v{{ talosctl_version | mandatory }}/talosctl-linux-amd64\"\n    version:\n      args: version --client\n      match: \"{{ talosctl_version | mandatory }}\"\n    bash_completion:\n      generate_args: completion bash\n    zsh_completion:\n      generate_args: completion zsh\n```\n\n### task\n\n[go-task / task](https://github.com/go-task/task)\n\n``` yaml\ntask_version: 3.42.1\n\ntool_deploy_list:\n  task:\n    action: download_archive\n    github:\n      repo: go-task/task\n      file: \"v{{ task_version }}/task_linux_amd64.tar.gz\"\n    version:\n      args: --version\n      match: \"Task version: v{{ task_version }}\"\n    bash_completion:\n      src: completion/bash/task.bash\n    zsh_completion:\n      src: completion/zsh/_task\n```\n\n### tig\n\n[jonas / tig](https://github.com/jonas/tig)\n\n``` yaml\ntig_version: 2.5.12\n\ntool_deploy_list:\n  tig:\n    dependencies:\n      - build-essential\n      - ncurses-dev\n      - pkg-config\n    action: download_sources\n    github:\n      repo: jonas/tig\n      file: \"tig-{{ tig_version | mandatory }}/tig-{{ tig_version | mandatory }}.tar.gz\"\n    version:\n      args: --version\n      match: \"tig version {{ tig_version | mandatory }}\"\n    build_steps:\n      - ./configure prefix={{ tool_deploy_prefix }}\n      - make\n      - make install\n      - make install-doc-man\n```\n\n### tmux\n\n[tmux / tmux](https://github.com/tmux/tmux)\n\n``` yaml\ntmux_version: 3.5a\n\ntool_deploy_list:\n  tmux:\n    dependencies:\n      - build-essential\n      - ncurses-dev\n      - libevent-dev\n      - pkg-config\n      - bison\n    action: download_sources\n    github:\n      repo: tmux/tmux\n      file: \"{{ tmux_version | mandatory }}/tmux-{{ tmux_version | mandatory }}.tar.gz\"\n    version:\n      args: -V\n      match: \"tmux {{ tmux_version | mandatory }}\"\n    build_steps:\n      - ./configure prefix={{ tool_deploy_prefix }}\n      - make\n      - make install\n```\n\n### uv\n\n[astral-sh / uv](https://github.com/astral-sh/uv)\n\n``` yaml\nuv_version: 0.6.6\n\ntool_deploy_list:\n  uv:\n    action: download_archive\n    github:\n      repo: astral-sh/uv\n      file: \"{{ uv_version | mandatory }}/uv-x86_64-unknown-linux-gnu.tar.gz\"\n    version:\n      args: --version\n      match: \"uv {{ uv_version | mandatory }}\"\n    copy_files:\n      - src: uvx\n        mode: u=rwx,go=rx\n```\n\n### vhs\n\n[charmbracelet / vhs](https://github.com/charmbracelet/vhs)\n\n``` yaml\nvhs_version: 0.9.0\n\ntool_deploy_list:\n  vhs:\n    action: download_archive\n    github:\n      repo: charmbracelet/vhs\n      file: \"v{{ vhs_version | mandatory }}/vhs_{{ vhs_version }}_Linux_x86_64.tar.gz\"\n    version:\n      args: --version\n      match: \"vhs version v{{ vhs_version | mandatory }}\"\n    man_pages:\n      src:\n        - manpages/vhs.1.gz\n    bash_completion:\n      src: completions/vhs.bash\n    zsh_completion:\n      src: completions/vhs.zsh\n```\n\n### xh\n\n[ducaale / xh](https://github.com/ducaale/xh)\n\n``` yaml\nxh_version: 0.24.0\n\ntool_deploy_list:\n  xh:\n    action: download_archive\n    github:\n      repo: ducaale/xh\n      file: \"v{{ xh_version | mandatory }}/xh-{{ xh_version }}-x86_64-unknown-linux-musl.tar.gz\"\n    version:\n      args: --version\n      match: \"xh {{ xh_version | mandatory }}\"\n    create_links:\n      - src: xh\n        dest: xhs\n    man_pages:\n      src: doc/xh.1\n    bash_completion:\n      src: completions/xh.bash\n    zsh_completion:\n      src: completions/_xh\n```\n\n### xq\n\n[sibprogrammer / xq](https://github.com/sibprogrammer/xq)\n\n``` yaml\nxq_version: 1.3.0\n\ntool_deploy_list:\n  xq:\n    action: download_archive\n    github:\n      repo: sibprogrammer/xq\n      file: \"v{{ xq_version | mandatory }}/xq_{{ xq_version | mandatory }}_linux_amd64.tar.gz\"\n    version:\n      args: --version\n      match: \"xq version {{ xq_version | mandatory }}\"\n```\n\n### yq\n\n[mikefarah / yq](https://github.com/mikefarah/yq)\n\n``` yaml\nyq_version: 4.45.1\n\ntool_deploy_list:\n  yq:\n    action: download_binary\n    github:\n      repo: mikefarah/yq\n      file: \"v{{ yq_version | mandatory }}/yq_linux_amd64\"\n    version:\n      args: --version\n      match: \"version v{{ yq_version | mandatory }}\"\n```\n\n### zoxide\n\n[ajeetdsouza / zoxide](https://github.com/ajeetdsouza/zoxide)\n\n``` yaml\nzoxide_version: 0.9.7\n\ntool_deploy_list:\n  zoxide:\n    action: download_archive\n    github:\n      repo: ajeetdsouza/zoxide\n      file: \"v{{ zoxide_version }}/zoxide-{{ zoxide_version }}-x86_64-unknown-linux-musl.tar.gz\"\n    version:\n      args: --version\n      match: \"zoxide {{ zoxide_version }}\"\n    man_pages:\n      src:\n        - man/man1/zoxide.1\n        - man/man1/zoxide-add.1\n        - man/man1/zoxide-import.1\n        - man/man1/zoxide-init.1\n        - man/man1/zoxide-query.1\n        - man/man1/zoxide-remove.1\n    bash_completion:\n      src: completions/zoxide.bash\n    zsh_completion:\n      src: completions/_zoxide\n```\n\n## License\n\n[MIT](https://github.com/dreknix/ansible-role-tool-deploy/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreknix%2Fansible-role-tool-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdreknix%2Fansible-role-tool-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreknix%2Fansible-role-tool-deploy/lists"}