mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-17 12:40:44 +00:00
81 lines
3.3 KiB
Bash
Executable File
81 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
############################################################################
|
|
## install.sh
|
|
## This script installs the qqq-dev-tools onto a user's mac.
|
|
## e.g., by adding required brew packages, and settings in ~/zshrc
|
|
############################################################################
|
|
|
|
function introBanner()
|
|
{
|
|
gum style --border double --margin 1 --padding 1 --align center --width 80 --foreground "#FFFF00" --border-foreground "#0000B0" \
|
|
"Installing qqq-dev-tools at:" \
|
|
$QQQ_DEV_TOOLS_DIR
|
|
}
|
|
|
|
##################################################
|
|
## check if gum and realpath are both available ##
|
|
##################################################
|
|
which gum && which realpath > /dev/null 2>&1
|
|
if [ "$?" == "0" ]; then
|
|
###################################################################################
|
|
## if so, use realpath to get the QQQ_DEV_TOOLS_DIR ##
|
|
## print our gum banner, and use a gum spinner while checking for other packages ##
|
|
###################################################################################
|
|
QQQ_DEV_TOOLS_DIR=$(dirname $(realpath $0))
|
|
introBanner
|
|
gum spin --title "Checking for / Installing required homebrew packages..." -- $QQQ_DEV_TOOLS_DIR/bin/install-packages.sh
|
|
else
|
|
##################################################################################################
|
|
## if not, run the install-packages script just based dirname of $0, and don't give gum spinner ##
|
|
## after packages are installed, we can use realpath to get the actual QQQ_DEV_TOOLS_DIR ##
|
|
## then print our gum introBanner and resume ##
|
|
##################################################################################################
|
|
DIR=$(dirname $0)
|
|
echo "Checking for / Installing required homebrew packages..."
|
|
$DIR/bin/install-packages.sh
|
|
QQQ_DEV_TOOLS_DIR=$(dirname $(realpath $0))
|
|
introBanner
|
|
fi
|
|
|
|
function addVarsToRc()
|
|
{
|
|
file=$1
|
|
grep '##QQQ_DEV_TOOLS:start' $file > /dev/null
|
|
if [ "$?" == "0" ]; then
|
|
echo
|
|
echo "Found existing QQQ_DEV_TOOLS section in $file:"
|
|
echo
|
|
gsed '/##QQQ_DEV_TOOLS:start/,/##QQQ_DEV_TOOLS:end/p;d' $file | gum format -t code
|
|
echo
|
|
gum confirm "Please confirm removal (for replacement) of these lines of $file"
|
|
if [ "$?" == "1" ]; then
|
|
echo "OK, exiting."
|
|
exit;
|
|
fi
|
|
gsed -i '/##QQQ_DEV_TOOLS:start/,/##QQQ_DEV_TOOLS:end/d' $file
|
|
fi
|
|
|
|
echo "Adding QQQ_DEV_TOOLS section to $file"
|
|
cat <<EOF >> $file
|
|
##QQQ_DEV_TOOLS:start
|
|
## This section of this file was written automatically by:
|
|
## $(realpath $0).
|
|
## It may be re-written in the future by re-running that script.
|
|
## Unless, that is, you edit things here. Then, you're on your own :)
|
|
export QQQ_DEV_TOOLS_DIR=$QQQ_DEV_TOOLS_DIR
|
|
export PATH="$QQQ_DEV_TOOLS_DIR/bin:\$PATH"
|
|
. $QQQ_DEV_TOOLS_DIR/lib/qqq-shell-functions.sh
|
|
##QQQ_DEV_TOOLS:end
|
|
EOF
|
|
}
|
|
|
|
addVarsToRc ~/.zshrc
|
|
addVarsToRc ~/.bashrc
|
|
|
|
tada=$(echo ':tada:' | gum format --type emoji)
|
|
gum style --border double --margin 1 --padding 1 --align center --width 80 --foreground "#00FF00" --border-foreground "#0000B0" \
|
|
"QQQ Dev Tools installation is complete $tada" \
|
|
"" \
|
|
"You'll want to either re-source ~/.zshrc, or make a new terminal session, to start using it."
|