mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-17 20:50:44 +00:00
Initial import from qqq-dev-tools standalone repo
This commit is contained in:
80
qqq-dev-tools/install.sh
Executable file
80
qqq-dev-tools/install.sh
Executable file
@ -0,0 +1,80 @@
|
||||
#!/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."
|
Reference in New Issue
Block a user