about summary refs log tree commit diff
path: root/maintainers/scripts/copy-tarballs.sh
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-04-25 18:34:11 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-04-25 18:34:11 +0000
commitecd43e2bfe9bf845206da01c38c580bfae4660e2 (patch)
tree1ec1d650f179c2d90655f546fea6a23ea1c9a327 /maintainers/scripts/copy-tarballs.sh
parentc2d651ef68ff09efb67ca15f3ae1aae4baa4ce83 (diff)
downloadnixlib-ecd43e2bfe9bf845206da01c38c580bfae4660e2.tar
nixlib-ecd43e2bfe9bf845206da01c38c580bfae4660e2.tar.gz
nixlib-ecd43e2bfe9bf845206da01c38c580bfae4660e2.tar.bz2
nixlib-ecd43e2bfe9bf845206da01c38c580bfae4660e2.tar.lz
nixlib-ecd43e2bfe9bf845206da01c38c580bfae4660e2.tar.xz
nixlib-ecd43e2bfe9bf845206da01c38c580bfae4660e2.tar.zst
nixlib-ecd43e2bfe9bf845206da01c38c580bfae4660e2.zip
* Updated the script that copies tarballs used in Nixpkgs to
  nixos.org/tarballs.  It no longer greps the source for fetchurl
  calls, because a lot of URLs are now computed
  (e.g. "http://foo/${name}.tar.bz2").  So instead we evaluate the Nix
  expression with "nix-instantiate --xml --strict" and look for URLs
  in the result.  Because I'm lazy the script no longer checks whether
  the hash of the download matches the hash in the expression.

svn path=/nixpkgs/trunk/; revision=15310
Diffstat (limited to 'maintainers/scripts/copy-tarballs.sh')
-rwxr-xr-xmaintainers/scripts/copy-tarballs.sh57
1 files changed, 57 insertions, 0 deletions
diff --git a/maintainers/scripts/copy-tarballs.sh b/maintainers/scripts/copy-tarballs.sh
new file mode 100755
index 000000000000..76ced8a01d90
--- /dev/null
+++ b/maintainers/scripts/copy-tarballs.sh
@@ -0,0 +1,57 @@
+#! /bin/sh -e
+
+distDir=/data/webserver/tarballs
+
+urls=$(nix-instantiate --eval-only --xml --strict pkgs/top-level/build-for-release.nix \
+    | grep -A2 'name="urls"' \
+    | grep '<string value=' \
+    | sed 's/.*"\(.*\)".*/\1/' \
+    | sort | uniq)
+
+for url in $urls; do
+    
+    if echo "$url" | grep -q -E "www.cs.uu.nl|nixos.org|.stratego-language.org|java.sun.com|ut2004|linuxq3a|RealPlayer|Adbe|belastingdienst|microsoft|armijn/.nix|sun.com|archive.eclipse.org"; then continue; fi
+
+    base="$(basename "$url")"
+    newPath="$distDir/$base"
+
+    if ! test -e "$newPath"; then
+
+        #if echo $url | grep -q 'mirror://'; then
+        #   echo "$fn: skipping mirrored $url"
+        #   continue
+        #fi
+
+        echo "downloading $url to $newPath"
+
+        if test -n "$doCopy"; then
+            declare -a res
+            if ! res=($(PRINT_PATH=1 nix-prefetch-url "$url")); then
+                continue
+            fi
+            storePath=${res[1]}
+            cp $storePath "$newPath.tmp.$$"
+            mv -f "$newPath.tmp.$$" "$newPath"
+        fi
+        
+    fi
+
+    if test -n "$doCopy" -a -e "$newPath"; then
+
+        echo "hashing $newPath"
+
+        md5=$(nix-hash --flat --type md5 "$newPath")
+        ln -sfn "../$base" $distDir/md5/$md5
+
+        sha1=$(nix-hash --flat --type sha1 "$newPath")
+        ln -sfn "../$base" $distDir/sha1/$sha1
+
+        sha256=$(nix-hash --flat --type sha256 "$newPath")
+        ln -sfn "../$base" $distDir/sha256/$sha256
+        ln -sfn "../$base" $distDir/sha256/$(nix-hash --type sha256 --to-base32 "$sha256")
+
+    fi
+
+done
+
+echo DONE