about summary refs log tree commit diff
path: root/pkgs/build-support/fetchsvn/default.nix
diff options
context:
space:
mode:
authorNicolas Pierron <nicolas.b.pierron@gmail.com>2009-10-06 13:36:52 +0000
committerNicolas Pierron <nicolas.b.pierron@gmail.com>2009-10-06 13:36:52 +0000
commitd7897d0d1a5ab6514df238eed2f22fcba65c0183 (patch)
treeea9adb64e5bda5b67daa597e9d815afa64b5771f /pkgs/build-support/fetchsvn/default.nix
parente528b920bb1fcc616179f5dbd93889ccc6b32329 (diff)
downloadnixlib-d7897d0d1a5ab6514df238eed2f22fcba65c0183.tar
nixlib-d7897d0d1a5ab6514df238eed2f22fcba65c0183.tar.gz
nixlib-d7897d0d1a5ab6514df238eed2f22fcba65c0183.tar.bz2
nixlib-d7897d0d1a5ab6514df238eed2f22fcba65c0183.tar.lz
nixlib-d7897d0d1a5ab6514df238eed2f22fcba65c0183.tar.xz
nixlib-d7897d0d1a5ab6514df238eed2f22fcba65c0183.tar.zst
nixlib-d7897d0d1a5ab6514df238eed2f22fcba65c0183.zip
Change fetchsvn as well as nix-prefect-svn to use the repository name and
the revision number inside the derivation name.

svn path=/nixpkgs/trunk/; revision=17677
Diffstat (limited to 'pkgs/build-support/fetchsvn/default.nix')
-rw-r--r--pkgs/build-support/fetchsvn/default.nix21
1 files changed, 20 insertions, 1 deletions
diff --git a/pkgs/build-support/fetchsvn/default.nix b/pkgs/build-support/fetchsvn/default.nix
index 5a5f7533e7f7..ae8aabf858cd 100644
--- a/pkgs/build-support/fetchsvn/default.nix
+++ b/pkgs/build-support/fetchsvn/default.nix
@@ -1,8 +1,27 @@
 {stdenv, subversion, sshSupport ? false, openssh ? null}: 
 {url, rev ? "HEAD", md5 ? "", sha256 ? ""}:
 
+let
+  repoName = with stdenv.lib;
+    let
+      fst = head;
+      snd = l: head (tail l);
+      trd = l: head (tail (tail l));
+      path_ = reverseList (splitString "/" url);
+      path = if head path_ == "" then tail path_ else path_;
+    in
+      # ../repo/trunk -> repo
+      if fst path == "trunk" then snd path
+      # ../repo/branches/branch -> repo-branch
+      else if snd path == "branches" then "${trd path}-${fst path}"
+      # ../repo/tags/tag -> repo-tag
+      else if snd path == "tags" then     "${trd path}-${fst path}"
+      # ../repo (no trunk) -> repo
+      else fst path;
+in
+
 stdenv.mkDerivation {
-  name = "svn-export";
+  name = "${repoName}-r${toString rev}";
   builder = ./builder.sh;
   buildInputs = [subversion];