-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
90 lines (75 loc) · 2.85 KB
/
Makefile
File metadata and controls
90 lines (75 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
.PHONY: init update cleanup customization tools container dev media alternate server all sync lint help
.deps:
@if ! rpm -q python3-libdnf5 > /dev/null 2>&1; then \
echo "python3-libdnf5 is not installed. Please run:"; \
echo " sudo dnf install --assumeyes python3-libdnf5"; \
exit 1; \
fi
init: .deps
@ln -sf $(CURDIR)/.hooks/pre-commit.sh .git/hooks/pre-commit
@uv sync
update:
@uv lock --upgrade
@uv sync
cleanup:
@uv run ansible-playbook playbooks/cleanup.yaml --inventory inventory/hosts.yaml --ask-become-pass
customization:
@uv run ansible-playbook playbooks/customization.yaml --inventory inventory/hosts.yaml --ask-become-pass
tools:
@uv run ansible-playbook playbooks/tools.yaml --inventory inventory/hosts.yaml --ask-become-pass
container:
@uv run ansible-playbook playbooks/container.yaml --inventory inventory/hosts.yaml --ask-become-pass
dev:
@uv run ansible-playbook playbooks/dev.yaml --inventory inventory/hosts.yaml --ask-become-pass
media:
@uv run ansible-playbook playbooks/media.yaml --inventory inventory/hosts.yaml
alternate:
@uv run ansible-playbook playbooks/alternate.yaml --inventory inventory/hosts.yaml --ask-become-pass
server:
@uv run ansible-playbook playbooks/server.yaml --inventory inventory/hosts.yaml --ask-become-pass
all:
@uv run ansible-playbook playbooks/all.yaml --inventory inventory/hosts.yaml --ask-become-pass
sync:
@declare -a SKIP_SCRIPTS; \
SKIP_SCRIPTS+=("sync_gnome_terminal.sh"); \
for script in ./scripts/*; do \
script_name=$$(basename "$$script"); \
skip=false; \
for skip_script in "$${SKIP_SCRIPTS[@]}"; do \
if [ "$$script_name" = "$$skip_script" ]; then \
skip=true; \
break; \
fi; \
done; \
if [ "$$skip" = "true" ]; then \
echo "SKIP -x $$script"; \
continue; \
fi; \
if [ -x "$$script" ]; then \
echo "EXEC -> $$script"; \
"$$script"; \
else \
echo "SKIP -x $$script"; \
fi; \
done
lint:
@git ls-files -z -- '*.sh' | xargs -0 -r uv run shellcheck -e SC2034
@uv run ansible-lint
@for file in $$(find playbooks -name "*.yaml"); do \
uv run ansible-playbook --syntax-check "$$file" || exit 1; \
done
help:
@echo "Available targets:"
@echo " init - Set up py venv and install requirements"
@echo " update - Update dependencies and sync"
@echo " cleanup - Run cleanup playbook"
@echo " customization - Run customization playbook"
@echo " tools - Run tools setup playbook"
@echo " container - Run container setup playbook"
@echo " dev - Run development environment setup playbook"
@echo " media - Run media setup playbook"
@echo " alternate - Run alternate setup playbook"
@echo " server - Run server playbook"
@echo " all - Run all playbooks (except server)"
@echo " sync - Sync current settings"
@echo " lint - Run lint checks on scripts and playbooks"