#!/bin/bash # # SCRIPT NAME: # utils.sh # # AUTHOR: # Severin Kaderli # # DESCRIPTION: # This script provides functions that I use in my other scripts. It is # not supposed to be run directly. # # USAGE: # Source this script in the needed script. ####################################### # Directory variables ####################################### DIR="$( cd "$(dirname "${BASH_SOURCE[0]}" )" && cd ../../ && pwd)" SYSTEM_DIR="${DIR}/system" PACKAGES_DIR="${DIR}/packages" ####################################### # Bash color code variables ####################################### RESET='\033[0m' GREEN='\033[32m' RED='\033[31m' BLUE='\033[34m' YELLOW='\033[33m' ####################################### # Helper functions ####################################### # Function to display fancy headers # $1: Title function print_header() { echo -e "\n${GREEN}########################################" echo -e "# ${1}" echo -e "########################################${RESET}" } # Creates the given directory in the home directory # $1: Directory function create_directory() { echo -e "- Creating directory ${YELLOW}${HOME}/${1}${RESET}" mkdir -p "${HOME}/${1}" } # Creates a symlink of the given file from the home directory to here. # $1: Filename function create_link() { echo -e "- Linking ${YELLOW}${HOME}/${1}${RESET} -> ${YELLOW}${SYSTEM_DIR}/${1}${RESET}" rm -rf "${HOME:?}/$1" ln -fs "${SYSTEM_DIR}/${1}" "${HOME}/${1}" } # Function to set owner and permission of a file # $1: Owner # $2: Permissions # $3: File function set_permission() { echo -e "- Changing permission of ${YELLOW}${3}${RESET} to ${YELLOW}${1}${RESET}" sudo chown -R "${1}" "${3}" echo -e "- Changing permission of ${YELLOW}${3}${RESET} to ${YELLOW}${2}${RESET}" sudo chmod -R "${2}" "${3}" } # Function to enable a service # $1: Service function enable_service() { echo -e "- Enabling service ${YELLOW}${1}${RESET}" sudo systemctl enable "${1}" }