13 src = fetchFromGitHub {
17 hash = "sha256-6bLjHKkEghbY+UQFrgbfeHwOjtks1HjXbDXEr7DuJbU=";
19 # Inspired by: https://github.com/NixOS/nixpkgs/blob/f2d7a289c5a5ece8521dd082b81ac7e4a57c2c5c/pkgs/applications/graphics/pdfcpu/default.nix#L20-L32
20 # The intention here is to write the information into files in the `src`'s
21 # `$out`, and use them later in other phases (in this case `preBuild`).
22 # In order to keep determinism, we also delete the `.git` directory
23 # afterwards, imitating the default behavior of `leaveDotGit = false`.
24 # More info about git log format can be found at `git-log(1)` manpage.
28 git log -1 --pretty=%H > "COMMIT"
29 git log -1 --pretty=%cd --date=format:'%Y-%m-%dT%H:%M:%SZ' > "SOURCE_DATE"
34 vendorHash = "sha256-jED1K2zHv60zxMY4P7Z739uzf7PtlsnvZyStOSLKi4M=";
36 # options used by upstream:
37 # https://github.com/simulot/immich-go/blob/0.13.2/.goreleaser.yaml
42 "-X main.version=${version}"
46 ldflags+=" -X main.commit=$(cat COMMIT)"
47 ldflags+=" -X main.date=$(cat SOURCE_DATE)"
51 updateScript = nix-update-script { };
52 tests.versionTest = testers.testVersion {
54 command = "immich-go -version";
60 description = "Immich client tool for bulk-uploads";
62 Immich-Go is an open-source tool designed to streamline uploading
63 large photo collections to your self-hosted Immich server.
65 homepage = "https://github.com/simulot/immich-go";
66 mainProgram = "immich-go";
67 license = lib.licenses.agpl3Only;
68 maintainers = with lib.maintainers; [ kai-tub ];
69 changelog = "https://github.com/simulot/immich-go/releases/tag/${version}";