#!/bin/sh usage() { cat << EOF usage: ${0##*/} [command] -h Print this help message. -w Use whiptail. -d Use dialog. EOF } checkParameters() { local counter=0 while getopts ':hwd' flag; do if [ $((counter++)) -eq 1 ]; then usage exit 1 fi case $flag in h) usage exit 0 ;; w) checkForDependencies "libnewt" displayDialog=useWhiptail ;; d) checkForDependencies "dialog" displayDialog=useDialog ;; ?) printf '%s: invalid option - '\''%s'\'\\n "${0##*/}" "$OPTARG" exit 1 ;; esac done if [ $counter -eq 0 ]; then checkForDependencies "libnewt" displayDialog=useWhiptail fi } getGitconfigData() { $displayDialog --yesno "Would you like to set up gitconfig?" if [ $? -eq 1 ]; then return fi $displayDialog --msgbox "Now, I will ask you for data to set up gitconfig personal account." gitPersonalName=$($displayDialog --inputbox "Enter a name." 3>&1 1>&2 2>&3) gitPersonalMail=$($displayDialog --inputbox "Enter an e-mail." 3>&1 1>&2 2>&3) $displayDialog --msgbox "Let's continue with the work account." gitWorkPath=$($displayDialog --inputbox "Enter an absolute folder path where you would like to use the work account." 3>&1 1>&2 2>&3) while [[ ! -d $gitWorkPath ]]; do gitWorkPath=$($displayDialog --no-cancel --inputbox "Path isn't valid. Please try again" 3>&1 1>&2 2>&3) done gitWorkName=$($displayDialog --inputbox "Enter a name." 3>&1 1>&2 2>&3) gitWorkMail=$($displayDialog --inputbox "Enter an e-mail." 3>&1 1>&2 2>&3) sed -e "s/PERSONAL_NAME/$gitPersonalName/g" -e "s/PERSONAL_MAIL/$gitPersonalMail/g" -e "s|WORK_PATH|${gitWorkPath}|g" ./templates/.gitconfig > ./dotfiles/.gitconfig sed -e "s/WORK_NAME/$gitWorkName/g" -e "s/WORK_MAIL/$gitWorkMail/g" ./templates/.gitconfig-work > ./dotfiles/.gitconfig-work } checkForDependencies() { if [ "$1" = "libnewt" ]; then comm=whiptail else comm=$1 fi commOuput=$(command -v ${comm} &> /dev/null) if [ $? -eq 1 ]; then unameOutput=$(uname -a | grep "arch") if [ -f "/etc/arch-release" ] || [ $unameOutput -eq 0 ]; then sudo pacman --noconfirm --needed -Sy ${1} > /dev/null 2>&1 if [ $? -eq 1 ]; then echo "You must have an active internet connection." >&2 exit 1 fi return fi echo "You must install ${1}." >&2 exit 1 fi } useDialog() { dialog "$@" 9 60 } useWhiptail() { whiptail "$@" 0 0 } startRice() { lastFolder=$(pwd -P) cocoRiceFolder=$(echo "$(pwd -P)" | awk '{ sub(/CocoRice.*/, "CocoRice"); print }') cd $cocoRiceFolder $displayDialog --title "CocoRice" --msgbox "Hi! This script will auto install my dotfiles." getGitconfigData sh scripts/linkFiles.sh sh scripts/install.sh $displayDialog --title "CocoRice" --msgbox "All done! Enjoy..." clear cd $lastFolder } checkParameters $@ checkForDependencies startRice