From be5756c2d334e958001d47581d9110b87ab6c047 Mon Sep 17 00:00:00 2001 From: Jason Garber Date: Mon, 10 Jun 2024 09:35:20 -0400 Subject: [PATCH 1/3] Add Dev Container and `postCreateCommand` script This commit adds a basic Elixir Dev Container along with some useful tooling like the latest version of Git, the GitHub CLI, and the Elixir language server extension. --- .devcontainer/devcontainer.json | 37 +++++++++++++++++++++++++++++++++ .devcontainer/setup.sh | 8 +++++++ 2 files changed, 45 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100755 .devcontainer/setup.sh diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..5f7a853 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,37 @@ +// For format details, see https://aka.ms/devcontainer.json. +{ + "name": "compare_chain", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "elixir:1.16-otp-26-slim", + + // Features to add to the dev container. More info: https://containers.dev/features. + "features": { + "ghcr.io/devcontainers/features/common-utils:2": { + "installOhMyZsh": false, + "installOhMyZshConfig": false + }, + "ghcr.io/devcontainers/features/git:1": { + "version": "latest" + }, + "ghcr.io/devcontainers/features/github-cli:1": {} + }, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": ".devcontainer/setup.sh", + + // Configure tool-specific properties. + "customizations": { + "vscode": { + "extensions": [ + "EditorConfig.EditorConfig", + "JakeBecker.elixir-ls" + ] + } + } + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100755 index 0000000..d28afae --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -euo pipefail +IFS=$'\n\t' +set -vx + +mix local.hex --force +mix deps.get From 2568a04f68d4c1763c3078b7bef9e388b40c40f9 Mon Sep 17 00:00:00 2001 From: Jason Garber Date: Mon, 10 Jun 2024 09:35:23 -0400 Subject: [PATCH 2/3] Create .editorconfig --- .editorconfig | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b368786 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true From 9f59cff5469303f0af2249d1c8a96eb35ae103c7 Mon Sep 17 00:00:00 2001 From: Jason Garber Date: Mon, 10 Jun 2024 09:35:34 -0400 Subject: [PATCH 3/3] Ignore Elixir language server-generated files --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index ce2de91..4c883b5 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,6 @@ compare_chain-*.tar # Temporary files, for example, from tests. /tmp/ + +# Ignore files generated by Elixir Language Server IDE plugin. +.elixir_ls