39 lines
1.3 KiB
Bash
39 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
# Hash triggers (Script runs if these files change):
|
|
# dnf: {{ include "apps-dnf.txt" | sha256sum }}
|
|
# flatpak: {{ include "apps-flatpak.txt" | sha256sum }}
|
|
# vscode: {{ include "vscode-extensions.txt" | sha256sum }}
|
|
|
|
echo "🚀 Change detected in Fedora app lists. Restoring environment..."
|
|
|
|
# 1. Install DNF Packages
|
|
# We use .chezmoi.sourceDir to find the file during the apply process
|
|
if [ -f "{{ .chezmoi.sourceDir }}/apps-dnf.txt" ]; then
|
|
echo "Installing DNF packages..."
|
|
# Using xargs is safer for large lists
|
|
sudo dnf install -y $(cat "{{ .chezmoi.sourceDir }}/apps-dnf.txt")
|
|
fi
|
|
|
|
# 2. Install Flatpaks
|
|
if [ -f "{{ .chezmoi.sourceDir }}/apps-flatpak.txt" ]; then
|
|
echo "Installing Flatpaks..."
|
|
while read -r fp; do
|
|
# Basic check to skip empty lines
|
|
[[ -z "$fp" ]] && continue
|
|
flatpak install -y flathub "$fp"
|
|
done < "{{ .chezmoi.sourceDir }}/apps-flatpak.txt"
|
|
fi
|
|
|
|
# 3. Restore VS Code Extensions
|
|
if command -v code &> /dev/null; then
|
|
if [ -f "{{ .chezmoi.sourceDir }}/vscode-extensions.txt" ]; then
|
|
echo "Restoring VS Code Extensions..."
|
|
while read -r extension; do
|
|
[[ -z "$extension" ]] && continue
|
|
code --install-extension "$extension" --force
|
|
done < "{{ .chezmoi.sourceDir }}/vscode-extensions.txt"
|
|
fi
|
|
fi
|
|
|
|
echo "✅ Fedora environment is up to date!"
|