dotfiles/bin/software-install

100 lines
2.6 KiB
Bash
Executable file

#!/bin/bash
function configure_Linux_software {
echo "Not configured yet."
}
function configure_Darwin_software {
cp ~/.dotconfig/Darwin/com.shauninman.Day-O.plist ~/Library/Preferences
# Ensure any preference cache is cleared
pkill -u ${USER} cfprefsd
}
function install_Linux_software {
#-------------------------------
# Check the OS and set install command
#-------------------------------
if [ -x "$(which yum)" ]; then
INSTALLCMD="yum install -y"
elif [ -x "$(which apt-get)" ]; then
INSTALLCMD="apt-get install -y"
else
echo "Sorry, I don't know how to install software on this OS yet."
exit 1
fi
#-------------------------------
xargs -n1 sudo ${INSTALLCMD} <<-EOF
ack
archey
bash-completion
git
htop
mosh
nmap
p7zip
psgrep
pv
ss
vim
EOF
}
function install_Darwin_software {
#-------------------------------
# Install Homebrew if missing
#-------------------------------
if [ ! -x /usr/local/bin/brew ]; then
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap buo/cask-upgrade
fi
#-------------------------------
# Disable Homebrew's Google Analytics tracking
brew analytics off
# Update Brew formulae if older than 24 hours
find /usr/local/Homebrew/.git -name FETCH_HEAD -mtime +0 -exec brew update \;
# Install homebrew/bundle tap if we don't have it
[ -d /usr/local/Library/Taps/homebrew/homebrew-bundle ] || brew tap homebrew/bundle
#-------------------------------
# Run brew bundle if there's a newer version of Brewfile
#-------------------------------
if [ ~/.Brewfile -nt ~/.Brewfile.updated ]; then
( brew bundle --global install && touch ~/.Brewfile.updated )
fi
#-------------------------------
#-------------------------------
# Upgrade and clean Brew
#-------------------------------
brew upgrade
brew cleanup
brew bundle --global check
brew cask cleanup
#-------------------------------
#-------------------------------
# OS X software update
#-------------------------------
softwareupdate -irv
#-------------------------------
}
echo "#-------------------------------"
echo "# START: $(date)"
echo "#-------------------------------"
# Call the install function appropriate for this platform
install_$(uname -s)_software
configure_$(uname -s)_software
echo "#-------------------------------"
echo "# END: $(date)"
echo "#-------------------------------"
exit 0