Created
January 9, 2023 22:27
-
-
Save parsley42/0fa0d50d92be28c29cfc16a34980320c to your computer and use it in GitHub Desktop.
Chromebook bootstrap
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
#!/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