Skip to content

Commit

Permalink
Merge pull request #1254 from colindean/devcontainer
Browse files Browse the repository at this point in the history
Adds a devcontainer primarily for GitHub Codespaces use
  • Loading branch information
MikeMcQuaid authored Oct 4, 2023
2 parents d667f40 + bcd2f8e commit bc05f7f
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
14 changes: 14 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "Homebrew/homebrew-bundle",
"image": "ghcr.io/homebrew/brew:latest",
"workspaceFolder": "/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-bundle/",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-bundle/,type=bind,consistency=cached",
"onCreateCommand": "./.devcontainer/on-create-command.sh",
"postCreateCommand": "bundle install",
"remoteEnv": {
"HOMEBREW_GITHUB_API_TOKEN": "${localEnv:GITHUB_TOKEN}",
"PATH": "${containerEnv:PATH}:/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/current/bin",
"EDITOR": "code --wait",
"VISUAL": "code --wait"
}
}
39 changes: 39 additions & 0 deletions .devcontainer/on-create-command.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env bash
set -eux -o pipefail

# fix permissions so Homebrew and Bundler don't complain
sudo chmod -R g-w,o-w /home/linuxbrew

# everything below is too slow to do unless prebuilding so skip it
CODESPACES_ACTION_NAME="$(jq --raw-output '.ACTION_NAME' /workspaces/.codespaces/shared/environment-variables.json)"
if [[ "${CODESPACES_ACTION_NAME}" != "createPrebuildTemplate" ]]
then
echo "Skipping slow items, not prebuilding."
exit 0
fi

# install Homebrew's development gems
brew install-bundler-gems --groups=all

# install some useful development things
sudo apt-get update

apt_get_install() {
sudo apt-get install --yes --no-install-recommends \
-o Dpkg::Options::=--force-confdef \
-o Dpkg::Options::=--force-confnew \
"$@"
}

apt_get_install \
openssh-server \
zsh

# Ubuntu 18.04 doesn't include zsh-autosuggestions
if ! grep -q "Ubuntu 18.04" /etc/issue &>/dev/null
then
apt_get_install zsh-autosuggestions
fi

# Start the SSH server so that `gh cs ssh` works.
sudo service ssh start

0 comments on commit bc05f7f

Please sign in to comment.