about summary refs log tree commit diff
path: root/nuget-to-nix.sh
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2024-01-24 12:08:36 +0100
committerRory& <root@rory.gay>2024-01-24 12:08:36 +0100
commitebb775340a8198247113b9a3374cfda159a9fe3c (patch)
tree36ec2b971004d5a3bf9df7605d064554f22b3ea0 /nuget-to-nix.sh
parentLibMatrix update, refactor login page, add web manifest (diff)
downloadMatrixUtils-ebb775340a8198247113b9a3374cfda159a9fe3c.tar.xz
Minor cleanup of file tree
Diffstat (limited to 'nuget-to-nix.sh')
-rwxr-xr-xnuget-to-nix.sh88
1 files changed, 0 insertions, 88 deletions
diff --git a/nuget-to-nix.sh b/nuget-to-nix.sh
deleted file mode 100755
index 7aa35fb..0000000
--- a/nuget-to-nix.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/bin/sh
-
-#patched version of nuget-to-nix to inherit env
-
-set -euo pipefail
-shopt -s nullglob
-
-#export PATH="@binPath@"
-# used for glob ordering of package names
-export LC_ALL=C
-
-if [ $# -eq 0 ]; then
-  >&2 echo "Usage: $0 <packages directory> [path to a file with a list of excluded packages] > deps.nix"
-  exit 1
-fi
-
-pkgs=$1
-tmp=$(realpath "$(mktemp -td nuget-to-nix.XXXXXX)")
-trap 'rm -r "$tmp"' EXIT
-
-excluded_list=$(realpath "${2:-/dev/null}")
-
-export DOTNET_NOLOGO=1
-export DOTNET_CLI_TELEMETRY_OPTOUT=1
-
-mapfile -t sources < <(dotnet nuget list source --format short | awk '/^E / { print $2 }')
-
-declare -A base_addresses
-
-for index in "${sources[@]}"; do
-  base_addresses[$index]=$(
-    curl --compressed --netrc -fsL "$index" | \
-      jq -r '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"')
-done
-
-echo "{ fetchNuGet }: ["
-
-cd "$pkgs"
-for package in *; do
-  cd "$package"
-  for version in *; do
-    id=$(xq -r .package.metadata.id "$version/$package".nuspec)
-
-    if grep -qxF "$id.$version.nupkg" "$excluded_list"; then
-      continue
-    fi
-
-    used_source="$(jq -r '.source' "$version"/.nupkg.metadata)"
-    for source in "${sources[@]}"; do
-      url="${base_addresses[$source]}$package/$version/$package.$version.nupkg"
-      if [[ "$source" == "$used_source" ]]; then
-        sha256="$(nix-hash --type sha256 --flat --base32 "$version/$package.$version".nupkg)"
-        found=true
-        break
-      else
-        if sha256=$(nix-prefetch-url "$url" 2>"$tmp"/error); then
-          # If multiple remote sources are enabled, nuget will try them all
-          # concurrently and use the one that responds first. We always use the
-          # first source that has the package.
-          echo "$package $version is available at $url, but was restored from $used_source" 1>&2
-          found=true
-          break
-        else
-          if ! grep -q 'HTTP error 404' "$tmp/error"; then
-            cat "$tmp/error" 1>&2
-            exit 1
-          fi
-        fi
-      fi
-    done
-
-    if ! ${found-false}; then
-      echo "couldn't find $package $version" >&2
-      exit 1
-    fi
-
-    if [[ "$source" != https://api.nuget.org/v3/index.json ]]; then
-      echo "  (fetchNuGet { pname = \"$id\"; version = \"$version\"; sha256 = \"$sha256\"; url = \"$url\"; })"
-    else
-      echo "  (fetchNuGet { pname = \"$id\"; version = \"$version\"; sha256 = \"$sha256\"; })"
-    fi
-  done
-  cd ..
-done
-
-cat << EOL
-]
-EOL