From 184ca52a8c90ce8dcc20397edee959241e950611 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sun, 13 Jul 2025 09:35:40 -0500 Subject: [PATCH] cleanup --- Dockerfile | 8 ---- lib/aprsme/dependency_info.ex | 54 ------------------------ lib/aprsme_web/live/status_live/index.ex | 25 ----------- 3 files changed, 87 deletions(-) delete mode 100644 lib/aprsme/dependency_info.ex diff --git a/Dockerfile b/Dockerfile index faab470..cf8f7c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,8 +29,6 @@ COPY mix.exs mix.lock ./ # Copy vendor directory for local dependencies COPY vendor vendor RUN mix deps.get --only $MIX_ENV -# Extract the APRS parser hash from the vendored directory -RUN cd vendor/aprs && git rev-parse HEAD | cut -c1-7 > /tmp/aprs_hash.txt RUN mix deps.compile # Copy application code @@ -65,12 +63,6 @@ RUN mkdir -p /app # Set deployment timestamp to current time during runtime container build RUN date -u +"%Y-%m-%dT%H:%M:%SZ" > /app/deployed_at.txt -# Copy APRS parser hash from builder stage -COPY --from=builder /tmp/aprs_hash.txt /app/aprs_hash.txt - -# Set APRS parser hash environment variable for runtime -RUN APRS_HASH=$(cat /app/aprs_hash.txt) && echo "APRS_PARSER_HASH=$APRS_HASH" >> /etc/environment - # Copy release from builder COPY --from=builder --chown=nobody:root /app/release ./ diff --git a/lib/aprsme/dependency_info.ex b/lib/aprsme/dependency_info.ex deleted file mode 100644 index 6e9c4af..0000000 --- a/lib/aprsme/dependency_info.ex +++ /dev/null @@ -1,54 +0,0 @@ -defmodule Aprsme.DependencyInfo do - @moduledoc """ - Provides information about dependencies, particularly for production builds. - """ - - alias Aprsme.CircuitBreaker - - @doc """ - Gets the SHA1 hash of the aprs library currently being used. - In development: reads from vendor/aprs directory - In production: uses the hash captured at compile time - """ - def get_aprs_library_sha do - # First try environment variable (production) - case System.get_env("APRS_PARSER_HASH") do - nil -> get_aprs_sha_from_vendor() - "unknown" -> get_aprs_sha_from_vendor() - hash -> hash - end - end - - defp get_aprs_sha_from_vendor do - vendor_path = Path.join([File.cwd!(), "vendor", "aprs"]) - - if File.dir?(vendor_path) do - case System.cmd("git", ["rev-parse", "HEAD"], cd: vendor_path) do - {sha, 0} -> String.slice(String.trim(sha), 0, 7) - _ -> nil - end - end - rescue - _ -> nil - end - - def latest_aprs_library_sha do - case CircuitBreaker.call( - :github_api, - fn -> - resp = Req.get!("https://api.github.com/repos/aprsme/aprs/commits/main") - body = resp.body - sha = body["sha"] || body |> Jason.decode!() |> Access.get("sha") - String.slice(sha, 0, 7) - end, - 10_000 - ) do - {:ok, sha} -> sha - {:error, _} -> nil - end - end - - def is_latest_aprs_library? do - get_aprs_library_sha() == latest_aprs_library_sha() - end -end diff --git a/lib/aprsme_web/live/status_live/index.ex b/lib/aprsme_web/live/status_live/index.ex index b95bb84..ce1338d 100644 --- a/lib/aprsme_web/live/status_live/index.ex +++ b/lib/aprsme_web/live/status_live/index.ex @@ -14,8 +14,6 @@ defmodule AprsmeWeb.StatusLive.Index do page_title: "System Status", aprs_status: get_aprs_status(), version: get_app_version(), - aprs_library_sha: get_aprs_library_sha(), - is_latest_aprs_library: Aprsme.DependencyInfo.is_latest_aprs_library?(), current_time: DateTime.utc_now(), health_score: calculate_health_score(get_aprs_status()) ) @@ -60,25 +58,6 @@ defmodule AprsmeWeb.StatusLive.Index do {gettext("Version:")} {@version} - <%= if @aprs_library_sha do %> -
- - {gettext("APRS Library:")} - - - - {@aprs_library_sha} - - <%= if @is_latest_aprs_library do %> - Latest ✅ - <% end %> - -
- <% end %> @@ -295,10 +274,6 @@ defmodule AprsmeWeb.StatusLive.Index do :aprsme |> Application.spec(:vsn) |> List.to_string() end - defp get_aprs_library_sha do - Aprsme.DependencyInfo.get_aprs_library_sha() - end - defp refresh_status(socket) do aprs_status = get_aprs_status()