temp!
This commit is contained in:
commit
114130d8f4
48
local.yaml
Normal file
48
local.yaml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
|
||||||
|
vars:
|
||||||
|
package_become: true
|
||||||
|
repos:
|
||||||
|
# - repo: git@code.infektor.net:config/kitty.git
|
||||||
|
# path: ~/.config/kitty
|
||||||
|
- repo: git@code.infektor.net:config/zsh.git
|
||||||
|
path: ~/.config/zsh
|
||||||
|
- repo: git@code.infektor.net:config/tmux.git
|
||||||
|
path: ~/.config/tmux
|
||||||
|
- repo: git@code.infektor.net:config/vim.git
|
||||||
|
path: ~/.config/nvim
|
||||||
|
- repo: git@code.infektor.net:config/git.git
|
||||||
|
path: ~/.config/git
|
||||||
|
- repo: git@code.infektor.net:config/python.git
|
||||||
|
path: ~/.config/python
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Clone config repos
|
||||||
|
git:
|
||||||
|
repo: '{{item.repo}}'
|
||||||
|
dest: '{{item.path}}'
|
||||||
|
version: master
|
||||||
|
with_items: '{{repos}}'
|
||||||
|
|
||||||
|
- name: Set config repos user.email
|
||||||
|
git_config:
|
||||||
|
repo: '{{item.path}}'
|
||||||
|
scope: local
|
||||||
|
name: user.email
|
||||||
|
value: '{{item.email | default("benie@infektor.net")}}'
|
||||||
|
with_items: '{{repos}}'
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Dynamically include tasks from config repos
|
||||||
|
include_tasks:
|
||||||
|
file: '{{config}}/tasks.yaml'
|
||||||
|
loop_control:
|
||||||
|
loop_var: config
|
||||||
|
with_items: '{{repos | map(attribute="path") | list}}'
|
||||||
|
tags: tasks
|
||||||
|
|
||||||
|
- import_playbook: local/base-dirs.yaml
|
||||||
|
- import_playbook: local/fonts.yaml
|
||||||
|
- import_playbook: local/ferdi.yaml
|
||||||
|
- import_playbook: local/distrobox.yaml
|
22
local/base-dirs.yaml
Normal file
22
local/base-dirs.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
|
||||||
|
vars:
|
||||||
|
base_dirs:
|
||||||
|
- ~/.cache
|
||||||
|
- ~/.cache/local
|
||||||
|
- ~/.config
|
||||||
|
- ~/.local
|
||||||
|
- ~/.local/bin
|
||||||
|
- ~/.local/include
|
||||||
|
- ~/.local/lib
|
||||||
|
- ~/.local/share
|
||||||
|
- ~/.local/src
|
||||||
|
- ~/.local/state
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Create base directories
|
||||||
|
file:
|
||||||
|
state: directory
|
||||||
|
path: '{{item}}'
|
||||||
|
with_items: '{{base_dirs}}'
|
21
local/distrobox.yaml
Normal file
21
local/distrobox.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: Install distrobox
|
||||||
|
command:
|
||||||
|
creates: ~/.local/bin/distrobox*
|
||||||
|
cmd: ~/.local/src/distrobox/install -p ~/.local/bin
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Install distrobox dependencies
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
name: podman
|
||||||
|
|
||||||
|
- name: Clone distrobox repository
|
||||||
|
git:
|
||||||
|
repo: https://github.com/89luca89/distrobox.git
|
||||||
|
dest: ~/.local/src/distrobox
|
||||||
|
version: main
|
||||||
|
notify: Install distrobox
|
20
local/ferdi.yaml
Normal file
20
local/ferdi.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: Install Ferdi
|
||||||
|
become: true
|
||||||
|
apt:
|
||||||
|
deb: '~/.cache/local/ferdi_{{latest.json.name}}_amd64.deb'
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Get latest Ferdi release
|
||||||
|
uri:
|
||||||
|
url: https://api.github.com/repos/getferdi/ferdi/releases/latest
|
||||||
|
register: latest
|
||||||
|
|
||||||
|
- name: Download latest Ferdi deb package
|
||||||
|
get_url:
|
||||||
|
url: 'https://github.com/getferdi/ferdi/releases/download/{{latest.json.tag_name}}/ferdi_{{latest.json.name}}_amd64.deb'
|
||||||
|
dest: '~/.cache/local/ferdi_{{latest.json.name}}_amd64.deb'
|
||||||
|
notify: Install Ferdi
|
58
local/fonts.yaml
Normal file
58
local/fonts.yaml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
|
||||||
|
vars:
|
||||||
|
# jq: From all the items in the assets list, select the item
|
||||||
|
# with the name that starts with "OTF" and return that name.
|
||||||
|
otf_query: >-
|
||||||
|
.assets[] | select(.name | test("OTF.*")) | .name
|
||||||
|
# jq: As above but instead of returning the name return the browser
|
||||||
|
# download URL.
|
||||||
|
otf_url_query: >-
|
||||||
|
.assets[] | select(.name | test("OTF.*")) |
|
||||||
|
.browser_download_url
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: Rebuild font cache
|
||||||
|
command: fc-cache -f
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Get latest Source Code Pro font release
|
||||||
|
uri:
|
||||||
|
url: https://api.github.com/repos/adobe-fonts/source-code-pro/releases/latest
|
||||||
|
register: latest
|
||||||
|
|
||||||
|
- name: Set Source Code Pro font zip path
|
||||||
|
set_fact:
|
||||||
|
zip_path: '~/.cache/local/{{latest.json | moreati.jq.jq(otf_query)}}'
|
||||||
|
|
||||||
|
- name: Download latest Source Code Pro zip
|
||||||
|
get_url:
|
||||||
|
url: '{{latest.json | moreati.jq.jq(otf_url_query)}}'
|
||||||
|
dest: '{{zip_path}}'
|
||||||
|
|
||||||
|
- name: Extract Source Code Pro font zip
|
||||||
|
unarchive:
|
||||||
|
src: '{{zip_path}}'
|
||||||
|
dest: ~/.local/share/fonts
|
||||||
|
notify: Rebuild font cache
|
||||||
|
|
||||||
|
- name: Get latest Source Sans font release
|
||||||
|
uri:
|
||||||
|
url: https://api.github.com/repos/adobe-fonts/source-sans-pro/releases/latest
|
||||||
|
register: latest
|
||||||
|
|
||||||
|
- name: Set Source Sans font zip path
|
||||||
|
set_fact:
|
||||||
|
zip_path: '~/.cache/local/{{latest.json | moreati.jq.jq(otf_query)}}'
|
||||||
|
|
||||||
|
- name: Download latest Source Sans font zip
|
||||||
|
get_url:
|
||||||
|
url: '{{latest.json | moreati.jq.jq(otf_url_query)}}'
|
||||||
|
dest: '{{zip_path}}'
|
||||||
|
|
||||||
|
- name: Extract Source Sans font zip
|
||||||
|
unarchive:
|
||||||
|
src: '{{zip_path}}'
|
||||||
|
dest: ~/.local/share/fonts
|
||||||
|
notify: Rebuild font cache
|
Loading…
x
Reference in New Issue
Block a user