#!/usr/bin/env bash # Intendet to be sourced function error() { echo "ERROR [${PROGRAM}] " $@ exit 1 } function info() { echo "INFO [${PROGRAM}] " $@ } function verbose() { if [[ -n "${DOTI_VERBOSE}" ]]; then echo "VERBOSE [${PROGRAM}] " $@ fi } function pacinstall() { local program=$1 pacman -Q ${program} &> /dev/null if [[ "$?" -ne "0" ]]; then info "Installing ${program}" sudo pacman -S --noconfirm ${program} else verbose "${program} already installed." fi } function yayinstall() { local program=$1 yay -Q ${program} &> /dev/null if [[ "$?" -ne "0" ]]; then info "Installing ${program}" yay -S --noconfirm ${program} else verbose "${program} already installed." fi } # function install_config_file() { # local file=$1 # local dir=$1 # # mkdir -p "${dir}" # # cp -v "configs/${file}" "${dir}/${file}" # } function config_url_install() { local file=$1 local url=$2 local dir=$(dirname "${file}") mkdir -v -p "${dir}" curl -s -o "${file}" -L "${url}" verbose "${url} -> ${file}" } function config_from_nixos_config() { local file=$1 local dir=$2 if [[ -z "${dir}" ]]; then dir="${file}" fi config_url_install "${HOME}/.config/${dir}" "https://raw.githubusercontent.com/RoBaertschi/nixos-config/refs/heads/master/configs/${file}" } function unit_enable() { verbose "Enabeling Systemd Unit $1" sudo systemctl enable $1 } function user_unit_enable() { systemctl enable --user $1 } function program_begin() { if [[ -n "${PROGRAM}" ]]; then error "${PROGRAM} still on the program stack" fi export PROGRAM=$1 info "Installing and configuring ${PROGRAM}" } function program_end() { verbose "${PROGRAM} done" PROGRAM="" }