From 0035ca6248d1f289241c5dd0839c17a481f568d1 Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 2 Dec 2024 13:48:37 +0100 Subject: [PATCH] Bye bye sbt --- .gitignore | 1 + .mill-version | 1 + .../src/main/scala/dev/ctsk/aoc}/Main.scala | 0 .../main/scala/dev/ctsk/aoc}/Solution.scala | 0 .../main/scala/dev/ctsk/aoc}/days/Day01.scala | 0 .../main/scala/dev/ctsk/aoc}/days/Day02.scala | 0 build.mill | 7 ++ build.sbt | 10 --- mill | 67 +++++++++++++++++++ src/test/scala/MySuite.scala | 9 --- 10 files changed, 76 insertions(+), 19 deletions(-) create mode 100644 .mill-version rename {src/main/scala => aoc/src/main/scala/dev/ctsk/aoc}/Main.scala (100%) rename {src/main/scala => aoc/src/main/scala/dev/ctsk/aoc}/Solution.scala (100%) rename {src/main/scala => aoc/src/main/scala/dev/ctsk/aoc}/days/Day01.scala (100%) rename {src/main/scala => aoc/src/main/scala/dev/ctsk/aoc}/days/Day02.scala (100%) create mode 100644 build.mill delete mode 100644 build.sbt create mode 100755 mill delete mode 100644 src/test/scala/MySuite.scala diff --git a/.gitignore b/.gitignore index 9e79245..2fe12a6 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ metals.sbt .idea .idea_modules /.worksheet/ +out/ diff --git a/.mill-version b/.mill-version new file mode 100644 index 0000000..aa22d3c --- /dev/null +++ b/.mill-version @@ -0,0 +1 @@ +0.12.3 diff --git a/src/main/scala/Main.scala b/aoc/src/main/scala/dev/ctsk/aoc/Main.scala similarity index 100% rename from src/main/scala/Main.scala rename to aoc/src/main/scala/dev/ctsk/aoc/Main.scala diff --git a/src/main/scala/Solution.scala b/aoc/src/main/scala/dev/ctsk/aoc/Solution.scala similarity index 100% rename from src/main/scala/Solution.scala rename to aoc/src/main/scala/dev/ctsk/aoc/Solution.scala diff --git a/src/main/scala/days/Day01.scala b/aoc/src/main/scala/dev/ctsk/aoc/days/Day01.scala similarity index 100% rename from src/main/scala/days/Day01.scala rename to aoc/src/main/scala/dev/ctsk/aoc/days/Day01.scala diff --git a/src/main/scala/days/Day02.scala b/aoc/src/main/scala/dev/ctsk/aoc/days/Day02.scala similarity index 100% rename from src/main/scala/days/Day02.scala rename to aoc/src/main/scala/dev/ctsk/aoc/days/Day02.scala diff --git a/build.mill b/build.mill new file mode 100644 index 0000000..b923929 --- /dev/null +++ b/build.mill @@ -0,0 +1,7 @@ +package build + +import mill._, scalalib._ + +object aoc extends ScalaModule { + def scalaVersion = "3.5.2" +} \ No newline at end of file diff --git a/build.sbt b/build.sbt deleted file mode 100644 index d4b85aa..0000000 --- a/build.sbt +++ /dev/null @@ -1,10 +0,0 @@ -val scala3Version = "3.5.2" - -lazy val root = project - .in(file(".")) - .settings( - name := "aoc-2024", - version := "0.1.0-SNAPSHOT", - scalaVersion := scala3Version, - libraryDependencies += "org.scalameta" %% "munit" % "1.0.0" % Test - ) diff --git a/mill b/mill new file mode 100755 index 0000000..f4d81f4 --- /dev/null +++ b/mill @@ -0,0 +1,67 @@ +#!/usr/bin/env sh + +# This is a wrapper script, that automatically download mill from GitHub release pages +# You can give the required mill version with MILL_VERSION env variable +# If no version is given, it falls back to the value of DEFAULT_MILL_VERSION + +set -e + +if [ -z "${DEFAULT_MILL_VERSION}" ] ; then + DEFAULT_MILL_VERSION=0.12.3 +fi + +if [ -z "$MILL_VERSION" ] ; then + if [ -f ".mill-version" ] ; then + MILL_VERSION="$(tr '\r' '\n' < .mill-version | head -n 1 2> /dev/null)" + elif [ -f ".config/mill-version" ] ; then + MILL_VERSION="$(tr '\r' '\n' < .config/mill-version | head -n 1 2> /dev/null)" + elif [ -f "mill" ] && [ "$0" != "mill" ] ; then + MILL_VERSION=$(grep -F "DEFAULT_MILL_VERSION=" "mill" | head -n 1 | cut -d= -f2) + else + MILL_VERSION=$DEFAULT_MILL_VERSION + fi +fi + +if [ "x${XDG_CACHE_HOME}" != "x" ] ; then + MILL_DOWNLOAD_PATH="${XDG_CACHE_HOME}/mill/download" +else + MILL_DOWNLOAD_PATH="${HOME}/.cache/mill/download" +fi +MILL_EXEC_PATH="${MILL_DOWNLOAD_PATH}/${MILL_VERSION}" + +version_remainder="$MILL_VERSION" +MILL_MAJOR_VERSION="${version_remainder%%.*}"; version_remainder="${version_remainder#*.}" +MILL_MINOR_VERSION="${version_remainder%%.*}"; version_remainder="${version_remainder#*.}" + +if [ ! -s "$MILL_EXEC_PATH" ] ; then + mkdir -p "$MILL_DOWNLOAD_PATH" + if [ "$MILL_MAJOR_VERSION" -gt 0 ] || [ "$MILL_MINOR_VERSION" -ge 5 ] ; then + ASSEMBLY="-assembly" + fi + DOWNLOAD_FILE=$MILL_EXEC_PATH-tmp-download + MILL_VERSION_TAG=$(echo $MILL_VERSION | sed -E 's/([^-]+)(-M[0-9]+)?(-.*)?/\1\2/') + MILL_DOWNLOAD_URL="https://repo1.maven.org/maven2/com/lihaoyi/mill-dist/$MILL_VERSION/mill-dist-$MILL_VERSION.jar" + curl --fail -L -o "$DOWNLOAD_FILE" "$MILL_DOWNLOAD_URL" + chmod +x "$DOWNLOAD_FILE" + mv "$DOWNLOAD_FILE" "$MILL_EXEC_PATH" + unset DOWNLOAD_FILE + unset MILL_DOWNLOAD_URL +fi + +if [ -z "$MILL_MAIN_CLI" ] ; then + MILL_MAIN_CLI="${0}" +fi + +MILL_FIRST_ARG="" + + # first arg is a long flag for "--interactive" or starts with "-i" +if [ "$1" = "--bsp" ] || [ "${1#"-i"}" != "$1" ] || [ "$1" = "--interactive" ] || [ "$1" = "--no-server" ] || [ "$1" = "--repl" ] || [ "$1" = "--help" ] ; then + # Need to preserve the first position of those listed options + MILL_FIRST_ARG=$1 + shift +fi + +unset MILL_DOWNLOAD_PATH +unset MILL_VERSION + +exec $MILL_EXEC_PATH $MILL_FIRST_ARG -D "mill.main.cli=${MILL_MAIN_CLI}" "$@" diff --git a/src/test/scala/MySuite.scala b/src/test/scala/MySuite.scala deleted file mode 100644 index 621784d..0000000 --- a/src/test/scala/MySuite.scala +++ /dev/null @@ -1,9 +0,0 @@ -// For more information on writing tests, see -// https://scalameta.org/munit/docs/getting-started.html -class MySuite extends munit.FunSuite { - test("example test that succeeds") { - val obtained = 42 - val expected = 42 - assertEquals(obtained, expected) - } -}