add zig installation via tarball
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
---
|
||||
- name: build and install alacritty
|
||||
become: true
|
||||
ansible.builtin.command:
|
||||
cmd:
|
||||
- cargo
|
||||
@@ -11,3 +10,4 @@
|
||||
- "{{ pkgconfig_alacritty.git_repo }}"
|
||||
- --tag
|
||||
- "v{{ pkgconfig_alacritty.version }}"
|
||||
become: true
|
||||
|
||||
@@ -1,2 +1,32 @@
|
||||
---
|
||||
- name: build ghostty from source
|
||||
block:
|
||||
- name: create temp path
|
||||
ansible.builtin.tempfile:
|
||||
state: directory
|
||||
prefix: ghostty.
|
||||
register: d_ghostty_tmp
|
||||
|
||||
- name: clone ghostty git repository
|
||||
ansible.builtin.git:
|
||||
depth: 1
|
||||
dest: "{{ d_ghostty_tmp.path }}/ghostty"
|
||||
repo: "{{ pkgconfig_ghostty.git_repo }}"
|
||||
version: "{{ pkgconfig_ghostty.version }}"
|
||||
|
||||
- name: build ghostty
|
||||
ansible.builtin.command:
|
||||
chdir: "{{ d_ghostty_tmp.path }}/ghostty"
|
||||
cmd: "zig build -D{{ pkgconfig_ghostty.optimize }}"
|
||||
register: c_ghostty_build
|
||||
|
||||
- name: install ghostty
|
||||
ansible.file.copy:
|
||||
src: "{{ d_ghostty_tmp.path }}/ghostty/zig-out/bin/ghostty"
|
||||
dest: "{{ pkgconfig_ghostty.install_prefix }}/bin/ghostty"
|
||||
owner: "{{ pkgconfig_ghostty.owner }}"
|
||||
group: "{{ pkgconfig_ghostty.group }}"
|
||||
mode: "0755"
|
||||
remote_src: true
|
||||
become: "{{ pkgconfig_ghostty.become }}"
|
||||
become_user: "{% if pkgconfig_ghostty.become %}{{ pkgconfig_ghostty.owner }}{% else %}~{% endif %}"
|
||||
|
||||
@@ -11,45 +11,44 @@
|
||||
ansible.builtin.git:
|
||||
depth: 1
|
||||
dest: "{{ d_nvim_tmp.path }}/neovim"
|
||||
repo: "{{ pkgconfig.neovim.git_repo }}"
|
||||
version: "{{ pkgconfig.neovim.version }}"
|
||||
repo: "{{ pkgconfig_neovim.git_repo }}"
|
||||
version: "{{ pkgconfig_neovim.version }}"
|
||||
|
||||
- name: build and install neovim
|
||||
ansible.builtin.make:
|
||||
chdir: "{{ d_nvim_tmp.path }}/neovim"
|
||||
params:
|
||||
CMAKE_BUILD_TYPE: "{{ pkgconfig.neovim.build_type }}"
|
||||
CMAKE_INSTALL_PREFIX: "{{ pkgconfig.neovim.install_prefix }}"
|
||||
CMAKE_BUILD_TYPE: "{{ pkgconfig_neovim.build_type }}"
|
||||
CMAKE_INSTALL_PREFIX: "{{ pkgconfig_neovim.install_prefix }}"
|
||||
target: install
|
||||
become: "{{ pkgconfig.neovim.become }}"
|
||||
become_user: "{% if pkgconfig.neovim.become %}{{ pkgconfig.neovim.owner }}{% else %}~{% endif %}"
|
||||
when: not pkgconfig.neovim.use_appimage
|
||||
become: "{{ pkgconfig_neovim.become }}"
|
||||
become_user: "{% if pkgconfig_neovim.become %}{{ pkgconfig_neovim.owner }}{% else %}~{% endif %}"
|
||||
when: not pkgconfig_neovim.use_appimage
|
||||
|
||||
- name: install neovim appimage
|
||||
block:
|
||||
- ansible.builin.file:
|
||||
state: directory
|
||||
mode: "0755"
|
||||
path: "{{ pkgconfig.neovim.install_dir }}"
|
||||
owner: "{{ pkgconfig.neovim.owner }}"
|
||||
group: "{{ pkgconfig.neovim.group }}"
|
||||
path: "{{ pkgconfig_neovim.install_dir }}"
|
||||
owner: "{{ pkgconfig_neovim.owner }}"
|
||||
group: "{{ pkgconfig_neovim.group }}"
|
||||
|
||||
- ansible.builtin.get_url:
|
||||
mode: "0755"
|
||||
decompress: false
|
||||
backup: true
|
||||
url: "{{ pkgconfig.neovim.appimage_url_pfx }}/{{ pkgconfig.neovim.version }}/nvim.appimage"
|
||||
checksum: "sha256:{{ pkgconfig.neovim.appimage_url_pfx }}/{{ pkgconfig.neovim.version }}/nvim.appimage.sha256sum"
|
||||
dest: "{{ pkgconfig.neovim.install_dir }}/nvim.appimage.{{ pkgconfig.neovim.version }}"
|
||||
owner: "{{ pkgconfig.neovim.owner }}"
|
||||
group: "{{ pkgconfig.neovim.group }}"
|
||||
url: "{{ pkgconfig_neovim.appimage_url_pfx }}/{{ pkgconfig_neovim.version }}/nvim.appimage"
|
||||
checksum: "sha256:{{ pkgconfig_neovim.appimage_url_pfx }}/{{ pkgconfig_neovim.version }}/nvim.appimage.sha256sum"
|
||||
dest: "{{ pkgconfig_neovim.install_dir }}/nvim.appimage.{{ pkgconfig_neovim.version }}"
|
||||
owner: "{{ pkgconfig_neovim.owner }}"
|
||||
group: "{{ pkgconfig_neovim.group }}"
|
||||
|
||||
- ansible.builtin.file:
|
||||
state: link
|
||||
src: "{{ pkgconfig.neovim.install_dir }}/nvim.appimage.{{ pkgconfig.neovim.version }}"
|
||||
path: "{{ pkgconfig.neovim.install_prefix }}/bin/nvim"
|
||||
src: "{{ pkgconfig_neovim.install_dir }}/nvim.appimage.{{ pkgconfig_neovim.version }}"
|
||||
path: "{{ pkgconfig_neovim.install_prefix }}/bin/nvim"
|
||||
when:
|
||||
- pkgconfig.neovim.use_appimage
|
||||
become: "{{ pkgconfig.neovim.become }}"
|
||||
become_user: "{% if pkgconfig.neovim.become %}{{ pkgconfig.neovim.owner }}{% else %}~{% endif %}"
|
||||
|
||||
- pkgconfig_neovim.use_appimage
|
||||
become: "{{ pkgconfig_neovim.become }}"
|
||||
become_user: "{% if pkgconfig_neovim.become %}{{ pkgconfig_neovim.owner }}{% else %}~{% endif %}"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
- name: download zig archive
|
||||
ansible.builtin.set_fact:
|
||||
zig_pkg: "zig-{{ pkgconfig.zig.sysmap[ansible_system] }}-{{ pkgconfig.zig.archmap[ansible_archtecture] }}-{{ pkgconfig.zig.version }}.tar.xz"
|
||||
zig_path: "zig-{{ pkgconfig_zig.sysmap[ansible_system] }}-{{ pkgconfig_zig.archmap[ansible_archtecture] }}-{{ pkgconfig_zig.version }}"
|
||||
zig_pkg: "zig-{{ pkgconfig_zig.sysmap[ansible_system] }}-{{ pkgconfig_zig.archmap[ansible_archtecture] }}-{{ pkgconfig_zig.version }}.tar.xz"
|
||||
|
||||
- name: create temp path
|
||||
ansible.builtin.tempfile:
|
||||
@@ -12,12 +13,25 @@
|
||||
- name: download zig archive
|
||||
ansible.builtin.get_url:
|
||||
dest: "{{ d_zig_dl_tmp.path }}/{{ zig_pkg }}"
|
||||
url: "{{ pkgconfig.zig.base_url }}/{{ zig_pkg }}"
|
||||
url: "{{ pkgconfig_zig.base_url }}/{{ zig_pkg }}"
|
||||
decompress: false
|
||||
|
||||
- name: extract zig package
|
||||
- name: create install_path
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
path: "{{ pkgconfig_zig.install_path }}"
|
||||
become: true
|
||||
|
||||
- name: extract zig package
|
||||
ansible.builtin.unarchive:
|
||||
dest: "{{ pkgconfig.zig.install_path }}"
|
||||
dest: "{{ pkgconfig_zig.install_path }}"
|
||||
src: "{{ d_zig_dl_tmp.path }}/{{ zig_pkg }}"
|
||||
remote_src: true
|
||||
become: true
|
||||
|
||||
- name: link zig binary
|
||||
ansible.builtin.file:
|
||||
state: link
|
||||
src: "{{ pkgconfig_zig.install_path }}/{{ zig_path }}/zig"
|
||||
path: "{{ pkgconfig_zig.install_prefix }}/bin/zig"
|
||||
become: true
|
||||
|
||||
@@ -1,23 +1,31 @@
|
||||
---
|
||||
- ansible.builtin.include_vars:
|
||||
file: ghostty.yml
|
||||
name: _ghostty
|
||||
- ansible.builtin.set_fact:
|
||||
pkgconfig_ghostty: "{{ _ghostty | ansible.builtin.combine(pkgconfig.ghostty) }}"
|
||||
|
||||
- name: ensure dependencies
|
||||
when: ansible_distribution == 'Fedora'
|
||||
block:
|
||||
- ansible.builtin.include_tasks:
|
||||
file: "pkgs/terra_repo.yml"
|
||||
when: pkgconfig_terrarepo is not defined
|
||||
when: pkgconfig_terrarepo not defined
|
||||
|
||||
- name: append to pkgs
|
||||
ansible.builtin.set_fact:
|
||||
syspkgs: "{{ syspkgs + [ 'ghostty' ] }}"
|
||||
when: ansible_distribution == 'Fedora' or
|
||||
not pkgconfig_ghostty.build
|
||||
|
||||
- name: no ghostty for this system
|
||||
when:
|
||||
- ansible_distribution != 'Fedora'
|
||||
- ansible_system == 'Linux'
|
||||
debug:
|
||||
msg: ghostty cannot be installed this way for your distribution
|
||||
- name: build ghostty from source
|
||||
block:
|
||||
- ansible.builtin.set_fact:
|
||||
syspkgs: "{{ syspkgs + pkgconfig_ghostty.build_deps[ansible_os_family] }}"
|
||||
srcpkgs: "{{ srcpkgs + ['ghostty'] }}"
|
||||
when: (ansible_distribution != 'Fedora' and ansible_system == 'Linux') or
|
||||
pkgconfig_ghostty.build
|
||||
|
||||
- name: append ghostty to caskpkgs
|
||||
when: ansible_distribution == 'MacOSX'
|
||||
ansible.builtin.set_fact:
|
||||
caskpkgs: "{{ caskpkgs + [ 'ghostty' ] }}"
|
||||
when: ansible_distribution == 'MacOSX'
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
file: terrarepo.yml
|
||||
name: _terrarepo
|
||||
- ansible.builtin.set_fact:
|
||||
pkgconfig:
|
||||
terrarepo: "{{ _terrarepo | ansible.builtin.combine(pkgconfig.terrarepo) }}"
|
||||
pkgconfig_terrarepo: "{{ _terrarepo | ansible.builtin.combine(pkgconfig.terrarepo) }}"
|
||||
|
||||
- name: enable terra repo for fedora
|
||||
when: ansible_distribution == 'Fedora'
|
||||
@@ -14,14 +13,14 @@
|
||||
when: ansible_distribution_major_version|int >= 41
|
||||
ansible.builtin.command:
|
||||
creates: /etc/yum.repos.d/terra.repo
|
||||
cmd: "dnf config-manager addrepo --from-repofile={{ pkgconfig.terrarepo.Fedora.repo }}"
|
||||
cmd: "dnf config-manager addrepo --from-repofile={{ pkgconfig_terrarepo.Fedora.repo }}"
|
||||
|
||||
- name: enable terra repo for fedora < 41
|
||||
become: true
|
||||
when: ansible_distribution_major_version|int < 41
|
||||
ansible.builtin.command:
|
||||
creates: /etc/yum.repos.d/terra.repo
|
||||
cmd: "dnf config-manager --add-repo {{ pkgconfig.terrarepo.Fedora.repo }}"
|
||||
cmd: "dnf config-manager --add-repo {{ pkgconfig_terrarepo.Fedora.repo }}"
|
||||
|
||||
- ansible.builtin.dnf:
|
||||
name: terra-release
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
- name: ensure hashicorp repo is active
|
||||
ansible.builtin.include_tasks:
|
||||
file: "pkgs/hashicorp_repo.yml"
|
||||
when: pkgconfig_hashicorp not defined
|
||||
|
||||
- name: append to pkgs
|
||||
set_fact:
|
||||
tappkgs: "{{ tappkgs + [ pkconfig.hashicorp.terraform[ansible_system] ] }}"
|
||||
ansible.builtin.set_fact:
|
||||
tappkgs: "{{ tappkgs + [ pkconfig_hashicorp.terraform[ansible_system] ] }}"
|
||||
|
||||
@@ -3,11 +3,8 @@
|
||||
file: tidy.yml
|
||||
name: _tidy
|
||||
- ansible.builtin.set_fact:
|
||||
pkgconfig:
|
||||
tidy: "{{ _tidy | ansible.builtin.combine(pkgconfig.tidy) }}"
|
||||
pkgconfig_tidy: "{{ _tidy | ansible.builtin.combine(pkgconfig.tidy) }}"
|
||||
|
||||
- name: append to pkgs
|
||||
set_fact:
|
||||
syspkgs: "{{ syspkgs + pkgconfig.tidy.pkgs[ansible_system] }}"
|
||||
tags:
|
||||
- packages
|
||||
ansible.builtin.set_fact:
|
||||
syspkgs: "{{ syspkgs + pkgconfig_tidy.pkgs[ansible_system] }}"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
- name: append to pkgs
|
||||
set_fact:
|
||||
ansible.builtin.set_fact:
|
||||
syspkgs: "{{ syspkgs + [ 'tmux' ] }}"
|
||||
tags:
|
||||
- packages
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
- name: ensure hashicorp repo is active
|
||||
ansible.builtin.include_tasks:
|
||||
file: "pkgs/hashicorp_repo.yml"
|
||||
when: pkgconfig_hashicorp not defined
|
||||
|
||||
- name: append to pkgs
|
||||
set_fact:
|
||||
tappkgs: "{{ tappkgs + [ pkgconfig.hashicorp.vault[ansible_system] ] }}"
|
||||
ansible.builtin.set_fact:
|
||||
tappkgs: "{{ tappkgs + [ pkgconfig_hashicorp.vault[ansible_system] ] }}"
|
||||
|
||||
@@ -3,11 +3,9 @@
|
||||
file: zfs.yml
|
||||
name: _zfs
|
||||
- ansible.builtin.set_fact:
|
||||
pkgconfig:
|
||||
zfs: "{{ _zfs | ansible.builtin.combine(pkgconfig.zfs) }}"
|
||||
pkgconfig_zfs: "{{ _zfs | ansible.builtin.combine(pkgconfig.zfs) }}"
|
||||
|
||||
- name: RedHat based configuration
|
||||
when: ansible_os_family == 'RedHat'
|
||||
block:
|
||||
- ansible.builtin.set_fact:
|
||||
rhname: "{%if ansible_distribution == 'Fedora' %}fedora{% else %}epel{% endif %}"
|
||||
@@ -17,34 +15,26 @@
|
||||
|
||||
- name: add openzfs gpg_key
|
||||
ansible.builtin.rpm_key:
|
||||
key: "{{ pkgconfig.zfs.gpg_key }}"
|
||||
fingerprint: "{{ pkgconfig.zfs.gpg_key_fingerprint }}"
|
||||
key: "{{ pkgconfig_zfs.gpg_key }}"
|
||||
fingerprint: "{{ pkgconfig_zfs.gpg_key_fingerprint }}"
|
||||
state: present
|
||||
become: true
|
||||
tags:
|
||||
- packages
|
||||
- RedHat
|
||||
|
||||
- name: enable openzfs repository
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ pkgconfig.zfs.repo_base }}{{ rhname }}/zfs-release-{{ pkgconfig.zfs[rhname].release }}{{ rpm_dist.stdout }}.noarch.rpm"
|
||||
name: "{{ pkgconfig_zfs.repo_base }}{{ rhname }}/zfs-release-{{ pkgconfig_zfs[rhname].release }}{{ rpm_dist.stdout }}.noarch.rpm"
|
||||
state: "{{ install_state }}"
|
||||
become: true
|
||||
tags:
|
||||
- packages
|
||||
- RedHat
|
||||
|
||||
- name: install zfs deps
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ pkgconfig.zfs[ansible_os_family].deppkgs }}"
|
||||
state: "{{ install_state }}"
|
||||
become: true
|
||||
ansible.builtin.set_fact:
|
||||
syspkgs: "{{ pkgconfig_zfs.deppkgs[ansible_os_family] }}"
|
||||
when: ansible_os_family == 'RedHat'
|
||||
|
||||
- name: Debian configuration
|
||||
when: ansible_os_family == 'Debian'
|
||||
block:
|
||||
- name: enable openzfs repository
|
||||
become: true
|
||||
ansible.builtin.apt_repository:
|
||||
repo: |
|
||||
deb http://deb.debian.org/debian {{ ansible_distribution_release }}-backports main contrib
|
||||
@@ -52,9 +42,9 @@
|
||||
filename: "{{ ansible_distribution_release }}-backports"
|
||||
state: present
|
||||
update_cache: false
|
||||
become: true
|
||||
|
||||
- name: pin zfs package to backports
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
content: |
|
||||
Package: src:zfs-linux
|
||||
@@ -62,17 +52,14 @@
|
||||
Pin-Priority: 990
|
||||
dest: /etc/apt/preferences.d/90_zfs
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: install zfs deps
|
||||
ansible.builtin.set_fact:
|
||||
syspkgs: "{{ pkgconfig_zfs.deppkgs[ansible_os_family] }}"
|
||||
become: true
|
||||
ansible.builtin.apt:
|
||||
name: "{{ pkgconfig.zfs.deppkgs[ansible_os_family] }}"
|
||||
state: "{{ install_state }}"
|
||||
|
||||
- name: append to pkgs
|
||||
set_fact:
|
||||
syspkgs: "{{ syspkgs + pkgconfig.zfs.pkgs[ansible_os_family] }}"
|
||||
ansible.builtin.set_fact:
|
||||
syspkgs: "{{ syspkgs + pkgconfig_zfs.pkgs[ansible_os_family] }}"
|
||||
become: true
|
||||
tags:
|
||||
- RedHat
|
||||
- packages
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
file: zig.yml
|
||||
name: _zig
|
||||
- ansible.builtin.set_fact:
|
||||
pkgconfig:
|
||||
zig: "{{ _zig | ansible.builtin.combine(pkgconfig.zig) }}"
|
||||
pkgconfig_zig: "{{ _zig | ansible.builtin.combine(pkgconfig.zig) }}"
|
||||
|
||||
- name: append to pkgs
|
||||
ansible.builtin.set_fact:
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
- name: append to pkgs
|
||||
set_fact:
|
||||
ansible.builtin.set_fact:
|
||||
syspkgs: "{{ syspkgs + [ 'zoxide' ] }}"
|
||||
tags:
|
||||
- packages
|
||||
|
||||
15
vars/ghostty.yml
Normal file
15
vars/ghostty.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
version: v1.0.1
|
||||
git_repo: https://github.com/ghostty-org/ghostty
|
||||
optimize: ReleaseFast
|
||||
build: false
|
||||
become: true
|
||||
owner: root
|
||||
group: root
|
||||
build_deps:
|
||||
Debian:
|
||||
- libgtk-4-dev
|
||||
- libadwaita-1-dev
|
||||
RedHat:
|
||||
- gtk4-devel
|
||||
- libadwaita-devel
|
||||
@@ -3,7 +3,7 @@
|
||||
assume_missing_is_syspkg: true
|
||||
full_upgrade: false
|
||||
install_state: present
|
||||
default_confg:
|
||||
default_config:
|
||||
install_prefix: /usr/local
|
||||
become: true
|
||||
owner: root
|
||||
@@ -33,6 +33,7 @@ pkgconfig:
|
||||
go: {}
|
||||
hashicorp: {}
|
||||
kitty: {}
|
||||
ghostty: {}
|
||||
neovide: {}
|
||||
neovim: {}
|
||||
nerdfonts: {}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
version: 0.13.0
|
||||
install_path: /usr/local
|
||||
install_prefix: /usr/local
|
||||
install_path: /opt/zig
|
||||
base_url: https://ziglang.org/download
|
||||
sysmap:
|
||||
Darwin: macos
|
||||
|
||||
Reference in New Issue
Block a user