dev/runs/services

101 lines
2.5 KiB
Bash
Executable file

#!/usr/bin/env bash
# NAME: Enable and configure system services
set -euo pipefail
# Source common functions
source "$(dirname "$0")/../common.sh" || {
echo "[ERROR] Could not source common.sh" >&2
exit 1
}
enable_networking_services() {
log_info "Enabling networking services"
sudo systemctl enable --now NetworkManager.service
sudo systemctl enable --now bluetooth.service
sudo systemctl enable --now sshd.service
}
enable_audio_services() {
log_info "Enabling audio services"
systemctl --user enable --now pipewire.service
systemctl --user enable --now pipewire-pulse.service
systemctl --user enable --now wireplumber.service
}
enable_printing_services() {
log_info "Enabling printing services"
sudo systemctl enable --now cups.service
}
configure_time_locale() {
log_info "Configuring time and locale services"
if ! grep -q "en_US.UTF-8 UTF-8" /etc/locale.gen; then
echo "en_US.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
sudo locale-gen
fi
echo "LANG=en_US.UTF-8" | sudo tee /etc/locale.conf
log_info "System locale set to en_US.UTF-8"
sudo timedatectl set-timezone America/Montevideo
sudo timedatectl set-ntp true
sudo systemctl enable --now systemd-timesyncd.service
sudo systemctl enable --now cronie.service
}
enable_security_services() {
log_info "Enabling security services"
sudo systemctl enable --now ufw.service
sudo ufw --force enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
}
enable_backup_services() {
log_info "Enabling backup services"
if findmnt / -t btrfs &>/dev/null; then
sudo systemctl enable --now snapper-timeline.timer
sudo systemctl enable --now snapper-cleanup.timer
log_info "Snapper enabled (BTRFS detected)"
else
log_info "Skipping Snapper (no BTRFS detected)"
fi
}
enable_power_management() {
log_info "Enabling power management"
sudo systemctl enable --now power-profiles-daemon.service
}
enable_system_optimization() {
log_info "Enabling system optimization"
sudo systemctl enable --now haveged.service
sudo systemctl enable --now plocate-updatedb.timer
sudo systemctl enable --now syncthing@forbi.service
}
main() {
init_script
enable_networking_services
enable_audio_services
enable_printing_services
configure_time_locale
enable_security_services
enable_backup_services
enable_power_management
enable_system_optimization
finish_script 0
}
main "$@"