Refactor setup workflow
This commit is contained in:
91
Makefile
91
Makefile
@@ -1,93 +1,10 @@
|
||||
# Makefile
|
||||
|
||||
REBOOT_MARKER := .setup-reboot-required
|
||||
SCRIPTS_DIR := ./Scripts
|
||||
|
||||
# Default target
|
||||
all: stow
|
||||
all: setup
|
||||
|
||||
# Full Setup
|
||||
# Bootstrap entrypoint for first-run setup.
|
||||
setup:
|
||||
@set -e; \
|
||||
rm -f $(REBOOT_MARKER); \
|
||||
bash ./scripts/base.sh; \
|
||||
if [ -f $(REBOOT_MARKER) ]; then \
|
||||
rm -f $(REBOOT_MARKER); \
|
||||
echo "Package layering finished. Reboot, then rerun make setup."; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
bash ./scripts/node.sh; \
|
||||
bash ./scripts/go.sh; \
|
||||
bash ./scripts/rust.sh; \
|
||||
bash ./scripts/python.sh; \
|
||||
if [ -f $(REBOOT_MARKER) ]; then \
|
||||
rm -f $(REBOOT_MARKER); \
|
||||
echo "Package layering finished. Reboot, then rerun make setup."; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
bash ./scripts/r.sh; \
|
||||
if [ -f $(REBOOT_MARKER) ]; then \
|
||||
rm -f $(REBOOT_MARKER); \
|
||||
echo "Package layering finished. Reboot, then rerun make setup."; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
$(MAKE) clean; \
|
||||
$(MAKE) stow; \
|
||||
echo "Full setup completed."
|
||||
|
||||
base:
|
||||
bash ./scripts/base.sh
|
||||
@echo "Base setup completed."
|
||||
|
||||
# Just stow the dotfiles
|
||||
stow:
|
||||
stow . --target=$$HOME --ignore=".git" --ignore=".gitignore" --ignore="README.md" --ignore=".zsh_secrets" --ignore=".zsh_secrets.example" --ignore="LICENSE" --ignore="Makefile" --ignore="bin" --ignore="scripts"
|
||||
@echo "Dotfiles linked."
|
||||
|
||||
# Clean old files and links
|
||||
clean:
|
||||
stow -D . --target=$$HOME
|
||||
@echo "Links removed."
|
||||
|
||||
# Pull Git Updates
|
||||
update:
|
||||
git pull origin main
|
||||
$(MAKE) setup
|
||||
|
||||
# Language Setups
|
||||
node:
|
||||
bash ./scripts/node.sh
|
||||
|
||||
go:
|
||||
bash ./scripts/go.sh
|
||||
|
||||
rust:
|
||||
bash ./scripts/rust.sh
|
||||
|
||||
python:
|
||||
bash ./scripts/python.sh
|
||||
|
||||
r:
|
||||
bash ./scripts/r.sh
|
||||
|
||||
cpp:
|
||||
bash ./scripts/cpp.sh
|
||||
|
||||
# Docker Tests
|
||||
test-ubuntu:
|
||||
@echo "Ubuntu Test"
|
||||
docker run -it --rm -e TERM=xterm-256color -v $(PWD):/root/dotfiles ubuntu:latest \
|
||||
bash -c "export DEBIAN_FRONTEND=noninteractive && \
|
||||
apt-get update && \
|
||||
apt-get install -y sudo git make curl && \
|
||||
cd /root/dotfiles && \
|
||||
make setup"
|
||||
|
||||
test-arch:
|
||||
@echo "Spawning Arch Container..."
|
||||
docker run -it --rm -e TERM=xterm-256color -v $(PWD):/root/dotfiles archlinux:latest \
|
||||
bash -c "pacman -Sy --noconfirm base-devel git make sudo && cd /root/dotfiles && make setup"
|
||||
|
||||
test-fedora:
|
||||
@echo "Spawning Fedora Container..."
|
||||
docker run -it --rm -e TERM=xterm-256color -v $(PWD):/root/dotfiles fedora:latest \
|
||||
bash -c "dnf install -y git make sudo curl which passwd procps-ng && cd /root/dotfiles && make setup"
|
||||
bash $(SCRIPTS_DIR)/setup.sh
|
||||
|
||||
Reference in New Issue
Block a user