about summary refs log tree commit diff
path: root/pkgs/servers/nosql/eventstore/create-deps.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/nosql/eventstore/create-deps.sh')
-rw-r--r--pkgs/servers/nosql/eventstore/create-deps.sh34
1 files changed, 34 insertions, 0 deletions
diff --git a/pkgs/servers/nosql/eventstore/create-deps.sh b/pkgs/servers/nosql/eventstore/create-deps.sh
new file mode 100644
index 000000000000..da73bcf1e3b6
--- /dev/null
+++ b/pkgs/servers/nosql/eventstore/create-deps.sh
@@ -0,0 +1,34 @@
+# 1. create a log with `dotnet restore -v m MyPackage.sln > mypackage-restore.log
+# 2. then call ./create-deps.sh mypackage-restore.log
+
+urlbase="https://www.nuget.org/api/v2/package"
+cat << EOL
+{ fetchurl }: let
+
+  fetchNuGet = { name, version, sha256 }: fetchurl {
+    inherit sha256;
+    url = "$urlbase/\${name}/\${version}";
+  };
+
+in [
+EOL
+IFS=''
+while read line; do
+  if echo $line | grep -q "Installing "; then
+    name=$(echo $line | sed -r 's/  Installing ([^ ]+) (.+)./\1/')
+    version=$(echo $line | sed -r 's/  Installing ([^ ]+) (.+)./\2/')
+    sha256=$(nix-prefetch-url "$urlbase/$name/$version" 2>/dev/null)
+    cat << EOL
+
+  (fetchNuGet {
+    name = "$name";
+    version = "$version";
+    sha256 = "$sha256";
+  })
+EOL
+  fi
+done < $1
+cat << EOL
+
+]
+EOL