Skip to content

Instantly share code, notes, and snippets.

@parsley42
Created January 9, 2023 22:27
Show Gist options
  • Save parsley42/0fa0d50d92be28c29cfc16a34980320c to your computer and use it in GitHub Desktop.
Save parsley42/0fa0d50d92be28c29cfc16a34980320c to your computer and use it in GitHub Desktop.
Chromebook bootstrap
#!/bin/bash
if ! grep -q 'ssh-agent' $HOME/.bashrc
then
mkdir -p $HOME/.config/systemd/user
cat << "EOF" > $HOME/.config/systemd/user/ssh-agent.service
[Unit]
Description=SSH key agent
[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
[Install]
WantedBy=default.target
EOF
systemctl --user enable ssh-agent
echo "export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket" >> $HOME/.bashrc
fi
if ! which docker > /dev/null
then
sudo apt update
sudo apt install -y \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo gpasswd -a $USER docker
fi
if ! which code > /dev/null
then
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /etc/apt/keyrings/microsoft.gpg
echo \
"deb [arch=amd64 signed-by=/etc/apt/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" \
| sudo tee /etc/apt/sources.list.d/microsoft.list > /dev/null
sudo apt update
sudo apt install -y code
fi
if ! which aws > /dev/null
then
DEST=/tmp/awscli-exe-linux-x86.zip
wget -O $DEST https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
cd $HOME
AWSCLI=$(mktemp -d awscli-XXXXX)
cd $AWSCLI
unzip $DEST
cd aws
sudo ./install
cd $HOME
rm -rf $AWSCLI $DEST
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb"
sudo dpkg -i session-manager-plugin.deb
rm -f session-manager-plugin.deb
fi
if [ ! -e $HOME/.git-completion.bash ]
then
curl -o $HOME/.git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
fi
if [ ! -e $HOME/.git-prompt.sh ]
then
curl -o $HOME/.git-prompt.sh https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
fi
if [ ! -e $HOME/.dev-init ]
then
cat <<"EOF" > $HOME/.dev-init
source $HOME/.git-completion.bash
source $HOME/.git-prompt.sh
GIT_PS1_SHOWUPSTREAM="auto"
GIT_PS1_SHOWDIRTYSTATE="true"
GIT_PS1_SHOWSTASHSTATE="true"
GIT_PS1_SHOWUNTRACKEDFILES="true"
PS1='[\[\033[01;32m\]\w\[\033[01;34m\]$(__git_ps1 "(%s)")\[\033[00m\]]\$ \[\]\[\]'
EOF
fi
grep -q '\.dev-init' $HOME/.bashrc || echo "source \$HOME/.dev-init" >> $HOME/.bashrc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment