Skip to content

Instantly share code, notes, and snippets.

@zudsniper
Last active April 16, 2023 07:39
Show Gist options
  • Save zudsniper/dac0bd4122a00edf7bc00fdbec08956f to your computer and use it in GitHub Desktop.
Save zudsniper/dac0bd4122a00edf7bc00fdbec08956f to your computer and use it in GitHub Desktop.
[DEPRECATED] check @zudsniper/bashbits | installs `nvm` for the user who executes the script. It must be manually installed for each user via build-script, it seems.
#!/bin/bash
set -e
# get_nvm.sh
# by zudsniper@github
# & ChatGPT 3.5
# -------------------
# `VERSION` 2.0.0
#
##########################
# `SOURCES` |
# =======================|
# Header help & argparse | https://medium.com/@brotandgames/build-a-custom-cli-with-bash-e3ce60cfb9a4
# NVM installation guide | https://github.com/nvm-sh/nvm#git-install
# How to add multi-line | https://stackoverflow.com/questions/23929235/multi-line-string-with-extra-space-preserved-indentation
# |
# ====================== #
# Accept 'yes' command as an argument to avoid user input
if command -v yes >/dev/null 2>&1; then
YES_FLAG="-y"
elif [ "$1" == "yes" ]; then
YES_FLAG="-y"
else
YES_FLAG=""
fi
# COLORS
# ----------------------------- #
## ANSI COLOR ENVIRONMENT VARS
if [[ ! -f "~/.ansi_colors.sh" ]]; then
#echo -ne "NO COLORS FILE FOUND, DOWNLOADING\n" can't print in .bashrc root
curl -sL https://gist.githubusercontent.com/zudsniper/e5bbdb7d3384a2b5f76277b52d103e59/raw/ansi_colors.sh -o ~/.ansi_colors.sh
fi
source ~/.ansi_colors.sh
# ----------------------------- #
echo -ne "${A_GREEN}${A_INVERSE}${A_BOLD}get_gnvm.sh${A_RESET} by zudsniper\n"
echo -ne "${A_BOLD}DEPENDENCIES${A_RESET}\n"
echo -ne "${A_GRAY}${A_ITALIC} ${A_UNDERLINE}https://bashrc.zod.tf/${A_RESET}\n\n"
# PARSE ARGS
case "$1" in
deploy|d)
tee -ia "/deploy_${2}.log"
;;
*)
echo -ne "USAGE: $0 [-y]\n";
;;
esac
if [ "$EUID" -ne 0 ]; then
echo -ne "${A_RED}${A_BOLD}${A_INVERT}caution: you are NOT root!${A_RESET}\n";
echo -ne "${A_YELLOW}${A_ITALIC}tread carefully! continuing...${A_RESET}\n\n";
sleep 3s;
else
echo -ne "${A_GREEN}${A_BOLD}${A_INVERT}USER IS ROOT! continuing...${A_RESET}\n\n";
fi
echo -ne "--------------------------------------------------------\n";
echo -ne "${A_BLUE}${A_BOLD}Installing essentials... you should probably already have these ${A_RESET}\n";
apt-get $YES_FLAG install git curl build-essential sudo;
echo -ne "--------------------------------------------------------\n";
echo -ne "${A_PURPLE}${A_BOLD}Cloning current nvm release from git...${A_RESET}\n";
export NVM_DIR="$HOME/.nvm" && (git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR"; cd "$NVM_DIR"; git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`;) && \. "$NVM_DIR/nvm.sh"
echo -ne "--------------------------------------------------------\n";
echo -ne "${A_YELLOW}${A_BOLD}ADD THE FOLLOWING TO ${A_RESET}${A_INVERT}/etc/profile${A_RESET}\n";
# echo -ne "${A_GRAY}${A_INVERT}${A_ITALIC}or call${A_RESET}${A_BOLD}${A_PURPLE} get_nvm${A_RESET} ${A_GRAY}${A_INVERT}${A_ITALIC}again to install these lines into your.${A_RESET}${A_BOLD}${A_PURPLE} ~/.bash_profile${A_RESET}\n\n";
NVM_ADDITIONS=$(cat <<-END
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
END
)
echo -ne "${NVM_ADDITIONS}\n";
echo -ne "--------------------------------------------------------\n";
if [ "$YES_FLAG" == "-y" ]; then
echo -ne "\n${A_ITALIC}${A_GRAY}installing...${A_RESET}\n";
echo "${NVM_ADDITIONS}" >> ~/.bashrc;
echo -ne "\n${A_BOLD}${A_GREEN}Done!${A_RESET}\n\n";
else
echo -ne "Press ${A_YELLOW}${A_INVERT}[ENTER]${A_RESET} to ${A_BOLD}${A_RED}INSTALL${A_RESET} into ${A_INVERT}~/.bashrc${A_RESET}...\n";
while : ; do
read -s -N 1 -t 1 key <&1
if [[ $key == $'\x0a' ]]; then # ENTER key
echo -ne "\n${A_ITALIC}${A_GRAY}installing...${A_RESET}\n";
echo "${NVM_ADDITIONS}" >> ~/.bashrc;
echo -ne "\n${A_BOLD}${A_GREEN}Done!${A_RESET}\n\n";
break;
elif [[ $key == $'\x1b' ]]; then # ESCAPE key
echo -ne "${A_YELLOW}${A_INVERT}${A_BLACK}DO NOT FORGET TO ADD THIS TO A TERMINAL FILE! ${A_RESET}\n\n";
sleep 3s;
break;
fi
done
fi
#!/bin/bash
set -e
# get_gnvm.sh
# by zudsniper@github
# -------------------
# `VERSION` 1.1.0
# - add automation functionality via parameter
#
##########################
# `SOURCES` |
# =======================|
# Header help & argparse | https://medium.com/@brotandgames/build-a-custom-cli-with-bash-e3ce60cfb9a4
# NVM installation guide | https://github.com/nvm-sh/nvm#git-install
# How to add multi-line | https://stackoverflow.com/questions/23929235/multi-line-string-with-extra-space-preserved-indentation
# |
# ====================== #
# COLORS
# --------@
# Add these serarately?
echo -ne "${A_GREEN}${A_INVERSE}${A_BOLD}get_gnvm.sh${A_RESET} by zudsniper\n"
echo -ne "${A_BOLD}DEPENDENCIES${A_RESET}\n"
echo -ne "${A_GRAY}${A_ITALIC} ${A_UNDERLINE}https://zod.tf/bashrc${A_RESET}\n\n"
# PARSE ARGS
case "$1" in
deploy|d)
tee -ia "/deploy_${2}.log"
;;
*)
cli_help
;;
esa
if [ "$EUID" -ne 0 ]; then
echo -ne "${A_RED}${A_BOLD}${A_INVERT}caution: you are NOT root!${A_RESET}\n";
echo -ne "${A_YELLOW}${A_ITALIC}tread carefully! continuing...${A_RESET}\n\n";
sleep 3s;
else
echo -ne "${A_GREEN}${A_BOLD}${A_INVERT}USER IS ROOT! continuing...${A_RESET}\n\n";
fi
echo -ne "--------------------------------------------------------\n";
echo -ne "${A_BLUE}${A_BOLD}Installing essentials... you should probably already have these ${A_RESET}\n";
apt-get install git curl build-essential sudo;
echo -ne "--------------------------------------------------------\n";
echo -ne "${A_PURPLE}${A_BOLD}Cloning current nvm release from git...${A_RESET}\n";
export NVM_DIR="$HOME/.nvm" && (git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR"; cd "$NVM_DIR"; git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`;) && \. "$NVM_DIR/nvm.sh"
echo -ne "--------------------------------------------------------\n";
echo -ne "${A_YELLOW}${A_BOLD}ADD THE FOLLOWING TO ${A_RESET}${A_INVERT}/etc/profile${A_RESET}\n";
# echo -ne "${A_GRAY}${A_INVERT}${A_ITALIC}or call${A_RESET}${A_BOLD}${A_PURPLE} get_nvm${A_RESET} ${A_GRAY}${A_INVERT}${A_ITALIC}again to install these lines into your.${A_RESET}${A_BOLD}${A_PURPLE} ~/.bash_profile${A_RESET}\n\n";
NVM_ADDITIONS=$(cat <<-END
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
END
)
echo -ne "${NVM_ADDITIONS}\n";
echo -ne "--------------------------------------------------------\n";
echo -ne "Press ${A_YELLOW}${A_INVERT}[ENTER]${A_RESET} to ${A_BOLD}${A_RED}INSTALL${A_RESET} into ${A_INVERT}~/.bashrc${A_RESET}...\n";
while : ; do
read -s -N 1 -t 1 key <&1
if [[ $key == $'\x0a' ]]; then # ENTER key
echo -ne "\n${A_ITALIC}${A_GRAY}installing...${A_RESET}\n";
echo "${NVM_ADDITIONS}" >> ~/.bashrc;
echo -ne "\n${A_BOLD}${A_GREEN}Done!${A_RESET}\n\n";
break;
elif [[ $key == $'\x1b' ]]; then # ESCAPE key
echo -ne "${A_YELLOW}${A_INVERT}${A_BLACK}DO NOT FORGET TO ADD THIS TO A TERMINAL FILE! ${A_RESET}\n\n";
sleep 3s;
break;
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment