Last active
March 21, 2020 23:40
-
-
Save AspenJames/15f95b3aeae0a78eff623aa200216be3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
## | Color variables | ## | |
export BLUE='\033[1;34m' | |
export blue='\033[0;34m' | |
export CYAN='\033[1;36m' | |
export cyan='\033[0;36m' | |
export GREEN='\033[1;32m' | |
export green='\033[0;32m' | |
export PURPLE='\033[1;35m' | |
export purple='\033[0;35m' | |
export RED='\033[1;31m' | |
export red='\033[0;31m' | |
export YELLOW='\033[1;33m' | |
export yellow='\033[0;33m' | |
export NC='\033[0m' | |
## mkalias function ## | |
# mkalias exa ls #=> alias exa="ls" | |
# mkalias exaa ls\ -lah #=> alias exaa="ls -lah" | |
function mkalias() { | |
echo "alias" $1'="'$2'"' >> ~/.bash_aliases | |
source ~/.bash_aliases | |
return 1 | |
} | |
## | Step 1: Add apt repositories | ## | |
echo -e "${green}Adding sources to ${CYAN}/etc/apt/sources.list.d/${NC}\n" | |
echo -e " ${PURPLE}Enpass.io${NC}" | |
if [ ! -f "/etc/apt/sources.list.d/enpass.list" ]; then | |
echo -e " ${GREEN}Adding apt signing key...${NC}" | |
curl -s https://apt.enpass.io/keys/enpass-linux.key | sudo apt-key add - &>/dev/null | |
echo "deb https://apt.enpass.io/ stable main" | sudo tee -a /etc/apt/sources.list.d/enpass.list | |
fi | |
echo | |
echo -e " ${PURPLE}Node${NC}" | |
if [ ! -f "/etc/apt/sources.list.d/nodesource.list" ]; then | |
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - &>/dev/null | |
fi | |
echo | |
echo -e " ${PURPLE}Signal${NC}" | |
if [ ! -f "/etc/apt/sources.list.d/signal-xenial.list" ]; then | |
echo -e " ${GREEN}Adding apt signing key...${NC}" | |
curl -s https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add - &>/dev/null | |
echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" | sudo tee -a /etc/apt/sources.list.d/signal-xenial.list | |
fi | |
echo | |
echo -e " ${PURPLE}Yarn${NC}" | |
if [ ! -f "/etc/apt/sources.list.d/yarn.list" ]; then | |
echo -e " ${GREEN}Adding apt signing key...${NC}" | |
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - &>/dev/null | |
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee -a /etc/apt/sources.list.d/yarn.list | |
fi | |
echo | |
## | Step 2: Update and install | ## | |
# Update repositories | |
sudo apt update &>/dev/null | |
# Install packages, listed alphabetically | |
sudo apt install -y \ | |
build-essential \ | |
chromium \ | |
default-jre \ | |
enpass \ | |
gnupg2 \ | |
libpq-dev \ | |
nodejs \ | |
postgresql \ | |
ripgrep \ | |
signal-desktop \ | |
tilix \ | |
vim \ | |
yarn \ | |
&>/dev/null | |
## | Step 3: Install .deb packages | ## | |
# `cd` into /tmp/deb | |
mkdir /tmp/deb | |
cd /tmp/deb | |
# Code | |
echo -e " ${Purple}Code${NC}" | |
curl -sSL https://update.code.visualstudio.com/latest/linux-deb-x64/stable -o code.deb | |
# Slack | |
echo -e " ${Purple}Slack${NC}" | |
curl -sSL https://downloads.slack-edge.com/linux_releases/slack-desktop-4.3.2-amd64.deb -o slack.deb | |
# Zoom | |
echo -e " ${Purple}Zoom${NC}" | |
curl -sSL https://zoom.us/client/latest/zoom_amd64.deb -o zoom.deb | |
# Install all downloaded .deb files | |
sudo dpkg -i *.deb | |
# Run apt install -f in case any packages broke | |
sudo apt install -fy &>/dev/null | |
# Remove temporary directory | |
sudo rm -rf /tmp/deb | |
## | Step 4: Various other installs | ## | |
# RVM | |
if ! hash rvm 2>/dev/null; then | |
## GPG key | |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB &>/dev/null | |
## Install | |
\curl -sSL https://get.rvm.io | bash -s stable &>/dev/null | |
## Source scripts | |
source $HOME/.bash_profile | |
## Install ruby version | |
rvm install 2.6 &>/dev/null | |
fi | |
# Golang | |
if ! hash go 2>/dev/null; then | |
## `cd` into /tmp to fetch | |
cd /tmp | |
## fetch binary | |
curl -sSL https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz -o go.tar.gz | |
## Extract into /usr/local | |
sudo tar -C /usr/local -xzf go.tar.gz &>/dev/null | |
## Add to PATH | |
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bash_profile | |
source ~/.bash_profile | |
fi | |
## Verify install | |
echo -e " ${CYAN}`go version`${NC}\n" | |
# Rust | |
if ! hash rustc 2>/dev/null; then | |
## Install | |
curl https://sh.rustup.rs -sSf | sh -s -- --profile default --default-toolchain stable -qy | |
## Source env | |
source $HOME/.cargo/env | |
fi | |
## Verify install | |
echo -e " ${CYAN}`rustc --version`${NC}\n" | |
# exa - ls replacement | |
if ! hash exa 2>/dev/null; then | |
## Install | |
cargo install exa | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment