From c136e446eae6296bffcb11c3d7da548327670ebd Mon Sep 17 00:00:00 2001
From: sloane <git@sloanelybutsurely.com>
Date: Thu, 21 Nov 2024 21:24:28 -0500
Subject: [PATCH] setup 2024

---
 .mise.toml                      |  2 ++
 2024/.github/workflows/test.yml | 23 +++++++++++++++++++++++
 2024/.gitignore                 |  4 ++++
 2024/.mise.toml                 |  3 +++
 2024/README.md                  |  9 +++++++++
 2024/gleam.toml                 | 19 +++++++++++++++++++
 2024/manifest.toml              | 11 +++++++++++
 2024/src/aoc.gleam              |  5 +++++
 2024/test/aoc_test.gleam        | 12 ++++++++++++
 README.md                       |  2 ++
 10 files changed, 90 insertions(+)
 create mode 100644 .mise.toml
 create mode 100644 2024/.github/workflows/test.yml
 create mode 100644 2024/.gitignore
 create mode 100644 2024/.mise.toml
 create mode 100644 2024/README.md
 create mode 100644 2024/gleam.toml
 create mode 100644 2024/manifest.toml
 create mode 100644 2024/src/aoc.gleam
 create mode 100644 2024/test/aoc_test.gleam

diff --git a/.mise.toml b/.mise.toml
new file mode 100644
index 0000000..18fad3f
--- /dev/null
+++ b/.mise.toml
@@ -0,0 +1,2 @@
+[tools]
+gleam = "1.6.1"
diff --git a/2024/.github/workflows/test.yml b/2024/.github/workflows/test.yml
new file mode 100644
index 0000000..6026a40
--- /dev/null
+++ b/2024/.github/workflows/test.yml
@@ -0,0 +1,23 @@
+name: test
+
+on:
+  push:
+    branches:
+      - master
+      - main
+  pull_request:
+
+jobs:
+  test:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: erlef/setup-beam@v1
+        with:
+          otp-version: "27.1.2"
+          gleam-version: "1.6.1"
+          rebar3-version: "3"
+          # elixir-version: "1.15.4"
+      - run: gleam deps download
+      - run: gleam test
+      - run: gleam format --check src test
diff --git a/2024/.gitignore b/2024/.gitignore
new file mode 100644
index 0000000..599be4e
--- /dev/null
+++ b/2024/.gitignore
@@ -0,0 +1,4 @@
+*.beam
+*.ez
+/build
+erl_crash.dump
diff --git a/2024/.mise.toml b/2024/.mise.toml
new file mode 100644
index 0000000..b7e64af
--- /dev/null
+++ b/2024/.mise.toml
@@ -0,0 +1,3 @@
+[tools]
+gleam = "1.6.1"
+erlang = "27.1.2"
diff --git a/2024/README.md b/2024/README.md
new file mode 100644
index 0000000..e7813ca
--- /dev/null
+++ b/2024/README.md
@@ -0,0 +1,9 @@
+# Advent of Code 2024
+
+|  S  |  M  |  T  |  W  |  T  |  F  |  S  |
+| :-: | :-: | :-: | :-: | :-: | :-: | :-: |
+|   1 |  2  |   3 |   4 |   5 |   6 |   7 |
+|   8 |  9  |  10 |  11 |  12 |  13 |  14 |
+|  15 | 16  |  17 |  18 |  19 |  20 |  21 |
+|  22 | 23  |  24 |  25 |     |     |     |
+
diff --git a/2024/gleam.toml b/2024/gleam.toml
new file mode 100644
index 0000000..e299b57
--- /dev/null
+++ b/2024/gleam.toml
@@ -0,0 +1,19 @@
+name = "aoc"
+version = "1.0.0"
+
+# Fill out these fields if you intend to generate HTML documentation or publish
+# your project to the Hex package manager.
+#
+# description = ""
+# licences = ["Apache-2.0"]
+# repository = { type = "github", user = "", repo = "" }
+# links = [{ title = "Website", href = "" }]
+#
+# For a full reference of all the available options, you can have a look at
+# https://gleam.run/writing-gleam/gleam-toml/.
+
+[dependencies]
+gleam_stdlib = ">= 0.34.0 and < 2.0.0"
+
+[dev-dependencies]
+gleeunit = ">= 1.0.0 and < 2.0.0"
diff --git a/2024/manifest.toml b/2024/manifest.toml
new file mode 100644
index 0000000..4721e5c
--- /dev/null
+++ b/2024/manifest.toml
@@ -0,0 +1,11 @@
+# This file was generated by Gleam
+# You typically do not need to edit this file
+
+packages = [
+  { name = "gleam_stdlib", version = "0.43.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "69EF22E78FDCA9097CBE7DF91C05B2A8B5436826D9F66680D879182C0860A747" },
+  { name = "gleeunit", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "F7A7228925D3EE7D0813C922E062BFD6D7E9310F0BEE585D3A42F3307E3CFD13" },
+]
+
+[requirements]
+gleam_stdlib = { version = ">= 0.34.0 and < 2.0.0" }
+gleeunit = { version = ">= 1.0.0 and < 2.0.0" }
diff --git a/2024/src/aoc.gleam b/2024/src/aoc.gleam
new file mode 100644
index 0000000..26987ac
--- /dev/null
+++ b/2024/src/aoc.gleam
@@ -0,0 +1,5 @@
+import gleam/io
+
+pub fn main() {
+  io.println("Hello from aoc!")
+}
diff --git a/2024/test/aoc_test.gleam b/2024/test/aoc_test.gleam
new file mode 100644
index 0000000..3831e7a
--- /dev/null
+++ b/2024/test/aoc_test.gleam
@@ -0,0 +1,12 @@
+import gleeunit
+import gleeunit/should
+
+pub fn main() {
+  gleeunit.main()
+}
+
+// gleeunit test functions end in `_test`
+pub fn hello_world_test() {
+  1
+  |> should.equal(1)
+}
diff --git a/README.md b/README.md
index 4ddf64a..93de9fa 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,7 @@
 | [2021] | **43/50** 🌟 | Elixir |
 | [2022] | **14/50** 🌟 | Elixir, Haskell |
 | [2023] | **19/50** 🌟 | Elixir, Haskell |
+| [2024] | | |
 
 [2015]: ./2015
 [2017]: ./2017
@@ -22,3 +23,4 @@
 [2021]: ./2021
 [2022]: ./2022
 [2023]: ./2023
+[2024]: ./2024