From 69f3aa27b85779ec4695fba22e1a05104e96136a Mon Sep 17 00:00:00 2001 From: dawn <90008@gaze.systems> Date: Fri, 10 Apr 2026 23:46:38 +0300 Subject: [PATCH] atcr --- pkgs-set/pkgs/docker-credential-atcr.nix | 46 ++++++++++++++++++++++++ users/mayer/default.nix | 3 ++ users/modules/atcr/default.nix | 32 +++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 pkgs-set/pkgs/docker-credential-atcr.nix create mode 100644 users/modules/atcr/default.nix diff --git a/pkgs-set/pkgs/docker-credential-atcr.nix b/pkgs-set/pkgs/docker-credential-atcr.nix new file mode 100644 index 0000000..3ee19a5 --- /dev/null +++ b/pkgs-set/pkgs/docker-credential-atcr.nix @@ -0,0 +1,46 @@ +{ + lib, + stdenv, + fetchurl, + ... +}: +let + version = "0.0.1"; + sources = { + "x86_64-linux" = { + url = "https://tangled.org/evan.jarrett.net/at-container-registry/tags/v${version}/download/docker-credential-atcr_${version}_Linux_x86_64.tar.gz"; + hash = "sha256-0LYmMJapSzc5IAcqS+9Uo7MqqjsAmsRdwOCLYqM6wC8="; + }; + "aarch64-linux" = { + url = "https://tangled.org/evan.jarrett.net/at-container-registry/tags/v${version}/download/docker-credential-atcr_${version}_Linux_arm64.tar.gz"; + hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; + }; + }; + source = sources.${stdenv.hostPlatform.system} or (throw "Unsupported platform: ${stdenv.hostPlatform.system}"); +in +stdenv.mkDerivation { + pname = "docker-credential-atcr"; + inherit version; + + src = fetchurl { + inherit (source) url hash; + }; + + sourceRoot = "."; + + dontBuild = true; + + installPhase = '' + install -m755 -D docker-credential-atcr $out/bin/docker-credential-atcr + ''; + + meta = { + description = "Docker credential helper for AT Container Registry (atcr.io)"; + homepage = "https://atcr.io"; + platforms = [ + "x86_64-linux" + "aarch64-linux" + ]; + mainProgram = "docker-credential-atcr"; + }; +} diff --git a/users/mayer/default.nix b/users/mayer/default.nix index 52ad560..998f4c2 100644 --- a/users/mayer/default.nix +++ b/users/mayer/default.nix @@ -127,6 +127,7 @@ in "helix" "git" "ssh" + "atcr" ] [ # "zen" @@ -194,6 +195,8 @@ in fonts.fontconfig.enable = l.mkForce true; + programs.atcr.enable = true; + programs.ssh.extraConfig = '' Host nixos-shell Hostname localhost diff --git a/users/modules/atcr/default.nix b/users/modules/atcr/default.nix new file mode 100644 index 0000000..102c21a --- /dev/null +++ b/users/modules/atcr/default.nix @@ -0,0 +1,32 @@ +{ + lib, + config, + terra, + ... +}: +let + l = lib; + cfg = config.programs.atcr; +in +{ + options.programs.atcr = { + enable = l.mkEnableOption "AT Container Registry credential helper"; + configureDocker = l.mkOption { + type = l.types.bool; + default = true; + description = "Configure docker to use atcr as credential helper for atcr.io"; + }; + }; + + config = l.mkIf cfg.enable { + home.packages = [ terra.docker-credential-atcr ]; + + home.file.".docker/config.json" = l.mkIf cfg.configureDocker { + text = builtins.toJSON { + credHelpers = { + "atcr.io" = "atcr"; + }; + }; + }; + }; +} -- 2.51.2