Skip to content

Instantly share code, notes, and snippets.

@AspenJames
Last active March 21, 2020 23:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AspenJames/15f95b3aeae0a78eff623aa200216be3 to your computer and use it in GitHub Desktop.
Save AspenJames/15f95b3aeae0a78eff623aa200216be3 to your computer and use it in GitHub Desktop.
#!/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