usefulfiles/scripts/generic_install.sh

198 lines
5.4 KiB
Bash
Raw Normal View History

2020-02-10 11:10:39 +00:00
!/bin/bash
2017-08-17 13:59:06 +00:00
NVM="$HOME/.nvm"
2020-02-10 10:48:34 +00:00
NVM_VERSION="v0.35.2"
NODE_VERSION="--lts"
2017-08-17 13:59:06 +00:00
DEV="$HOME/dev"
LIVE="$HOME/live"
STAGING="$HOME/staging"
SWAP="/swapfile"
PKG_MANAGER=$( command -v yum || command -v apt-get ) || echo "Neither yum nor apt-get found"
PKG_DEVICE=$(basename $PKG_MANAGER)
pidof systemd && SYSTEMDCALL=1 || SYSTEMDCALL=0
UPDATE=no
DATABASE=no
NGINX=no
2020-02-10 10:48:34 +00:00
INSTALL=no
2020-02-10 11:10:39 +00:00
INSTALLAMD=no
2020-02-10 10:48:34 +00:00
DONVM=no
2017-08-17 13:59:06 +00:00
RED=`tput setaf 1`
2020-02-10 11:10:39 +00:00
GREEN=`tput setaf 10`
YELLOW=`tput setaf 11`
PURPLE=`tput setaf 13`
2017-08-17 13:59:06 +00:00
RESET=`tput sgr0`
fancy_echo() {
local fmt="$1"; shift
# shellcheck disable=SC2059
printf "\n$fmt\n" "$@"
}
for i in "$@"
do
case $i in
-u|--update)
UPDATE=YES
shift # past argument=value
;;
-d|--database)
DATABASE=YES
shift # past argument=value
;;
-n|--nginx)
NGINX=YES
shift # past argument=value
;;
2020-02-10 10:48:34 +00:00
-i|--install|--setup)
2017-08-17 13:59:06 +00:00
UPDATE=YES
2020-02-10 10:48:34 +00:00
INSTALL=YES
DONVM=YES
2018-10-24 09:43:45 +00:00
# NGINX=YES
# DATABASE=YES
2017-08-17 13:59:06 +00:00
shift # past argument=value
;;
2020-02-10 11:10:39 +00:00
--install-amd)
UPDATE=YES
INSTALLAMD=YES
shift # past argument=value
;;
2017-08-17 13:59:06 +00:00
--default)
DEFAULT=YES
shift # past argument with no value
;;
*)
# unknown option
;;
esac
done
fancy_echo "${YELLOW}Installing PI ...${RESET}"
## Update initial packages
read -s -p "Enter Password for sudo: " sudoPW
fancy_echo "${RED}Cleaning...${RESET}"
if [ ! -d "$DEV" ]; then
mkdir -p $DEV
fi
if [ ! -d "$LIVE" ]; then
mkdir -p $LIVE
fi
if [ ! -d "$STAGING" ]; then
rm -rf $STAGING
mkdir -p $STAGING
else
mkdir -p $STAGING
fi
if [[ $UPDATE = "YES" ]]; then
fancy_echo "${PURPLE}Updating system packages${RESET}"
if [ $(basename $PKG_MANAGER) = "yum" ]; then
echo $sudoPW | sudo -S yum --assumeyes upgrade
echo $sudoPW | sudo -S yum --assumeyes install deltarpm psmisc
echo $sudoPW | sudo -S yum --assumeyes install git make automake gcc gcc-c++ kernel-devel nginx htop screen wget curl pi-bluetooth
else
2020-02-10 11:38:11 +00:00
echo $sudoPW | sudo -S apt-get -y -q --assume-yes update
echo $sudoPW | sudo -S apt-get -y -q --assume-yes upgrade
echo $sudoPW | sudo -S apt-get -y -q --assume-yes clean
echo $sudoPW | sudo -S apt autoremove --assume-yes
echo $sudoPW | sudo -S apt autoclean --assume-yes
2017-08-17 13:59:06 +00:00
fi
2020-02-10 10:48:34 +00:00
echo $sudoPW | sudo -S snap refresh
fi
if [[ $INSTALL = "YES" ]]; then
fancy_echo "${YELLOW}Installing Required ...${RESET}"
echo $sudoPW | sudo -S apt-get --assume-yes install build-essential git nginx htop screen wget curl default-jdk
2020-02-10 11:38:11 +00:00
echo $sudoPW | sudo -S apt-get -y -q --assume-yes clean
echo $sudoPW | sudo -S apt autoremove --assume-yes
echo $sudoPW | sudo -S apt autoclean --assume-yes
2020-02-10 10:48:34 +00:00
echo $sudoPW | sudo -S snap install chromium
echo $sudoPW | sudo -S snap install webstorm --classic
echo $sudoPW | sudo -S snap install intellij-idea-ultimate --classic
echo $sudoPW | sudo -S snap install android-studio --classic
echo $sudoPW | sudo -S snap install qownnotes
2020-02-10 11:38:11 +00:00
git clone http://martind2000@gitlab.silvrtree.co.uk/martind2000/usefulfiles.git $HOME/dev/usefulfiles
ln -n $HOME/dev/usefulfiles/shell_dotfiles/_bash_profile $HOME/.bash_profile
ln -n $HOME/dev/usefulfiles/shell_dotfiles/_aliases $HOME/.aliases
ln -n $HOME/dev/usefulfiles/shell_dotfiles/_bash_prompt $HOME/.bash_prompt
ln -n $HOME/dev/usefulfiles/shell_dotfiles/_gitconfig $HOME/.gitconfig
ln -n $HOME/dev/usefulfiles/shell_dotfiles/_screenrc $HOME/.screenrc
ln -n $HOME/dev/usefulfiles/shell_dotfiles/_nanorc $HOME/.nanorc
ln -n $HOME/dev/usefulfiles/shell_dotfiles/_wgetrc $HOME/.wgetrc
2020-02-10 10:48:34 +00:00
2017-08-17 13:59:06 +00:00
fi
# set up and install swap file
if [[ ! -f "$SWAP" ]]; then
fancy_echo "${YELLOW}Setting up swapfile...${RESET}"
echo $sudoPW | sudo -S fallocate -l 1G $SWAP
echo $sudoPW | sudo -S chmod 600 $SWAP
echo $sudoPW | sudo -S mkswap $SWAP
echo $sudoPW | sudo -S swapon $SWAP
2018-10-30 10:24:59 +00:00
add /swapfile/swapfile none swap defaults 0 0 to /etc/fstab
2017-08-17 13:59:06 +00:00
fi
# setup node and npm
2020-02-10 10:48:34 +00:00
if [[ $DONVM = "YES" ]]; then
2017-08-17 13:59:06 +00:00
fancy_echo "${YELLOW}Installing Node...${RESET}"
# Will enter here if $DIRECTORY exists, even if it contains spaces
2020-02-10 10:48:34 +00:00
curl -o- https://raw.githubusercontent.com/creationix/nvm/$NVM_VERSION/install.sh | bash
2017-08-17 13:59:06 +00:00
export NVM_DIR=$NVM
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
source $HOME/.bashrc
source $NVM/nvm.sh
2020-02-10 10:48:34 +00:00
nvm install $NODE_VERSION
2017-08-17 13:59:06 +00:00
fi
2020-02-10 10:48:34 +00:00
if [[ $INSTALL = "YES" ]]; then
2017-08-17 13:59:06 +00:00
fancy_echo "${YELLOW}Installing Node Global Packages...${RESET}"
2020-02-10 10:48:34 +00:00
npm install -g gulp pm2@latest npm-check npm-install-missing
2017-08-17 13:59:06 +00:00
pm2 update
fi
2020-02-10 11:10:39 +00:00
if [[ $INSTALLAMD = "YES" ]]; then
fancy_echo "${YELLOW}Installing AMD...${RESET}"
# from https://askubuntu.com/questions/1066105/how-to-install-amd-graphic-drivers-on-ubuntu-18-04
# Ensures NVIDIA is removed
echo $sudoPW | sudo -S apt-add-repository -r ppa:graphics-drivers/ppa --yes && \
sudo -S apt update --assume-yes && \
sudo -S apt upgrade --assume-yes && \
sudo -S apt autoremove --assume-yes && \
sudo -S apt autoclean --assume-yes
# install amd non propritery
echo $sudoPW | sudo -S add-apt-repository ppa:oibaf/graphics-drivers --yes --enable-source
echo $sudoPW | sudo -S apt-get update --assume-yes
echo $sudoPW | sudo -S apt upgrade --assume-yes
echo $sudoPW | sudo -S dpkg --configure -a
echo $sudoPW | sudo -S dpkg-reconfigure lightdm
echo $sudoPW | sudo -S apt-get install mesa-vdpau-drivers
fi