usefulfiles/scripts/pi_install.sh

129 lines
2.9 KiB
Bash
Raw Normal View History

2016-07-08 13:22:00 +00:00
#!/bin/bash
NVM="$HOME/.nvm"
NVM_VERSION="stable"
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
RED=`tput setaf 1`
GREEN=`tput setaf 2`
YELLOW=`tput setaf 3`
PURPLE=`tput setaf 5`
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
;;
-i|--install)
UPDATE=YES
NGINX=YES
DATABASE=YES
shift # past argument=value
;;
--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
echo $sudoPW | sudo -S apt-get -y -q --force-yes update
echo $sudoPW | sudo -S apt-get -y -q --force-yes upgrade
echo $sudoPW | sudo -S apt-get --assume-yes install build-essential git nginx htop screen wget curl pi-bluetooth rpi-update
echo $sudoPW | sudo -S apt-get -y -q --force-yes clean
fi
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
fi
# setup node and npm
if [ ! -d "$NVM" ]; then
fancy_echo "${YELLOW}Installing Node...${RESET}"
# Will enter here if $DIRECTORY exists, even if it contains spaces
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
export NVM_DIR=$NVM
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
source $HOME/.bashrc
source $NVM/nvm.sh
nvm install $NVM_VERSION
fi
if [[ $UPDATE = "YES" ]]; then
fancy_echo "${YELLOW}Installing Node Global Packages...${RESET}"
npm install -g gulp bower pm2@latest npm-check npm-install-missing ember-cli phantomjs-prebuilt
pm2 update
fi