From e355a3341f416c97c00b51161400a5c8e8409f71 Mon Sep 17 00:00:00 2001 From: Infinidoge Date: Mon, 29 Aug 2022 01:20:49 -0400 Subject: [PATCH] feat(pkgs): add nix-modrinth-prefetch --- pkgs/default.nix | 2 ++ pkgs/nix-modrinth-prefetch.nix | 13 +++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 pkgs/nix-modrinth-prefetch.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 704888f..1cedab5 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -6,4 +6,6 @@ final: prev: { olympus = final.callPackage ./olympus.nix { }; frei = final.callPackage ./frei.nix { source = final.sources.frei; }; + + nix-modrinth-prefetch = final.callPackage ./nix-modrinth-prefetch.nix { }; } diff --git a/pkgs/nix-modrinth-prefetch.nix b/pkgs/nix-modrinth-prefetch.nix new file mode 100644 index 0000000..36311bf --- /dev/null +++ b/pkgs/nix-modrinth-prefetch.nix @@ -0,0 +1,13 @@ +{ runtimeShell, writeShellScriptBin, curl, jq, gnused }: +writeShellScriptBin "nix-modrinth-prefetch" '' + input=$(${curl}/bin/curl --no-progress-meter https://api.modrinth.com/v2/version/$1) + + if [[ $input == "" ]]; then + echo "Invalid version" + exit 1 + fi + + echo $input \ + | ${jq}/bin/jq -c '.files | (.[] | select(.primary == true)) // .[0] | {url: .url, sha512: .hashes.sha512}' \ + | ${gnused}/bin/sed 's/{"url":"\(.\+\)","sha512":"\(.\+\)"}/fetchurl { url = "\1"; sha512 = "\2"; }/' +''