mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-13 22:02:34 +00:00
95 lines
2.7 KiB
Bash
Executable File
95 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
# Set scripts to be in the DEV_ENV folder encase they have not been
|
|
# installed yet.
|
|
SCRIPTS="${DEV_ENV}/env/.local/scripts"
|
|
|
|
_ensure_mount() {
|
|
local line=${1:-""}
|
|
local mount=${2:-""}
|
|
if [[ -n $line ]] && [[ -d $mount ]]; then
|
|
if sudo cat /etc/fstab | grep -vq "$line"; then
|
|
log " Setting up nas mount."
|
|
# sudo mkdir -p $mount &>/dev/null
|
|
echo "$line" | sudo tee --append /etc/fstab
|
|
sudo systemctl daemon-reload
|
|
sudo mount -a ||
|
|
log --warning "You will need to make sure this computer's ip is in the allow list, then run 'sudo mount -a'"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
_setup-mounts() {
|
|
|
|
sudo mkdir -p /mnt/{michael,customers} &>/dev/null
|
|
mkdir -p "$HOME/work" &>/dev/null
|
|
|
|
_ensure_mount "nas.housh.dev:/var/nfs/shared/michael_share /mnt/michael nfs defaults 0 0" /mnt/michael
|
|
_ensure_mount "//nas.housh.dev/michael_share/work $HOME/work cifs credentials=$HOME/.config/.smbcredentials,uid=$(id -u),gid=$(id -g),iocharset=utf8 0 0" "$HOME/work"
|
|
_ensure_mount "nas.housh.dev:/var/nfs/shared/Customer_Share /mnt/customers nfs defaults 0 0" /mnt/customers
|
|
}
|
|
|
|
_setup-kanata() {
|
|
log " Setting up kanata udev rules."
|
|
sudo groupadd --system uinput
|
|
sudo usermod -aG input "$USER"
|
|
sudo usermod -aG uinput "$USER"
|
|
[[ ! -f /etc/udev/rules.d/99-input.rules ]] &&
|
|
(
|
|
echo 'KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"' |
|
|
sudo tee /etc/udev/rules.d/99-input.rules
|
|
) &&
|
|
sudo udevadm control --reload-rules &&
|
|
sudo udevadm trigger &&
|
|
sudo modprobe uinput
|
|
log " Setting up kanata, using kanatactl."
|
|
SCRIPTS="$SCRIPTS" "$SCRIPTS/kanatactl" service install --prompt
|
|
}
|
|
|
|
_setup-gpg() {
|
|
log " Setting up gpg."
|
|
mkdir -p ~/{.gnupg,.ssh} &>/dev/null
|
|
chmod 700 ~/.gnupg
|
|
chmod 700 ~/.ssh
|
|
local dir=/tmp/gpg-public-key
|
|
git clone https://git.housh.dev/michael/gpg-public-key.git "$dir"
|
|
pushd "$dir" &>/dev/null || exit 1
|
|
(
|
|
source ./import
|
|
)
|
|
popd &>/dev/null || exit 1
|
|
rm -rf "$dir"
|
|
}
|
|
|
|
_setup-home-dir() {
|
|
log " Setting up home directory."
|
|
rm -rf "$HOME/Desktop" &>/dev/null
|
|
mkdir "$HOME/{containers,dev}" &>/dev/null
|
|
mkdir -p "$HOME/work" &>/dev/null
|
|
gpg --decrypt --output "$HOME/.config/.smbcredentials" "$DEV_ENV/env/smbcredentials.gpg"
|
|
chmod 600 "$HOME/.config/.smbcredentials"
|
|
}
|
|
|
|
install() {
|
|
log " Setting user shell to 'zsh'."
|
|
sudo chsh --shell "$(which zsh)"
|
|
log " Enabling systemd services."
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable --now pcscd.service
|
|
sudo systemctl enable --now firewalld.service
|
|
systemctl --user enable --now logout-task.service
|
|
systemctl --user enable --now battery-monitor.timer
|
|
systemctl --user enable --now tmux-kill-sessions.timer
|
|
_setup-kanata
|
|
_setup-mounts
|
|
_setup-gpg
|
|
_setup-home-dir
|
|
}
|
|
|
|
arg=${1:-""}
|
|
[[ $arg == "install" ]] && install
|