summary refs log tree commit diff
path: root/pkgs/build-support/upstream-updater
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2009-08-26 11:13:36 +0000
committerMichael Raskin <7c6f434c@mail.ru>2009-08-26 11:13:36 +0000
commitfbea8a558a44cce4db3f5bd1b4758b5bfe4bd875 (patch)
treec80f0787c5d4dd9dad12e91fad71a5f799ca0819 /pkgs/build-support/upstream-updater
parente8931adcf3c6a8163457756a4c16db7ed3441a1e (diff)
downloadnixpkgs-fbea8a558a44cce4db3f5bd1b4758b5bfe4bd875.tar
nixpkgs-fbea8a558a44cce4db3f5bd1b4758b5bfe4bd875.tar.gz
nixpkgs-fbea8a558a44cce4db3f5bd1b4758b5bfe4bd875.tar.bz2
nixpkgs-fbea8a558a44cce4db3f5bd1b4758b5bfe4bd875.tar.lz
nixpkgs-fbea8a558a44cce4db3f5bd1b4758b5bfe4bd875.tar.xz
nixpkgs-fbea8a558a44cce4db3f5bd1b4758b5bfe4bd875.tar.zst
nixpkgs-fbea8a558a44cce4db3f5bd1b4758b5bfe4bd875.zip
Adding WebDruid log analyzer. In the same time, reworking source autoupdate system a bit
svn path=/nixpkgs/trunk/; revision=16859
Diffstat (limited to 'pkgs/build-support/upstream-updater')
-rw-r--r--pkgs/build-support/upstream-updater/design.txt2
-rw-r--r--pkgs/build-support/upstream-updater/snippets.sh6
-rwxr-xr-xpkgs/build-support/upstream-updater/update-upstream-data.sh43
3 files changed, 41 insertions, 10 deletions
diff --git a/pkgs/build-support/upstream-updater/design.txt b/pkgs/build-support/upstream-updater/design.txt
index 2f5a78c0bfa..407f9e5bc1b 100644
--- a/pkgs/build-support/upstream-updater/design.txt
+++ b/pkgs/build-support/upstream-updater/design.txt
@@ -12,6 +12,7 @@ Attributes:
 src-info-for-file.nix:
 
 downloadPage
+baseName (default = unnamed-package)
 sourceRegexp (default = '.*[.]tar[.].*')
 choiceCommand (default = 'head -1')
 versionExtractorSedScript (default = 's/.*-([0-9.]+)[.].*/\1/')
@@ -24,3 +25,4 @@ advertisedUrl (its match is the check for update presence)
 url
 hash
 version
+name
diff --git a/pkgs/build-support/upstream-updater/snippets.sh b/pkgs/build-support/upstream-updater/snippets.sh
new file mode 100644
index 00000000000..27a7c14b1ec
--- /dev/null
+++ b/pkgs/build-support/upstream-updater/snippets.sh
@@ -0,0 +1,6 @@
+# sed scripts
+
+#http://sourceforge.net/projects/webdruid/files/webdruid/0.6.0-alpha5/webdruid-0.6.0-alpha5.tar.gz/download
+#http://downloads.sourceforge.net/webdruid/files/webdruid/0.6.0-alpha5/webdruid-0.6.0-alpha5.tar.gz
+skipRedirectSF='s@^http://sourceforge.net/projects/@http://downloads.sourceforge.net/@; s@/download$@@'
+extractReleaseSF='s@.*/([^/]+)/[^/]+@\1@'
diff --git a/pkgs/build-support/upstream-updater/update-upstream-data.sh b/pkgs/build-support/upstream-updater/update-upstream-data.sh
index 4aad91fdac2..b07e867fda9 100755
--- a/pkgs/build-support/upstream-updater/update-upstream-data.sh
+++ b/pkgs/build-support/upstream-updater/update-upstream-data.sh
@@ -1,13 +1,18 @@
 #! /bin/sh
 
+set -x
+
 own_dir="$(cd "$(dirname "$0")"; sh -c pwd)"
 
+source "$own_dir/snippets.sh"
+
 main_file="$1"
 main_dir="$(cd "$(dirname "$main_file")" ; sh -c pwd)"
 file_name="$(basename "$main_file")"
 defs_file="$main_dir"/src-info-for-"$file_name"
 src_file="$main_dir"/src-for-"$file_name"
-new_src_file="$main_dir"/updated-src-for-"$file_name"
+# OK, [vcs] revert is always possible
+new_src_file="$main_dir"/src-for-"$file_name"
 
 forcedUrl="$2"
 
@@ -23,8 +28,12 @@ getAttr () {
 
 if [ -z "$forcedUrl" ] ; then
     freshUrl="$("$own_dir"/urls-from-page.sh "$(getAttr downloadPage)" |
-      egrep "$(getAttr sourceRegexp '.*[.]tar[.].*')" | 
-      sh -c "$(getAttr choiceCommand 'head -1')")"
+      eval "egrep \"$(getAttr sourceRegexp '.*[.]tar[.].*')\"" | 
+      eval "$(getAttr choiceCommand 'head -1')")"
+
+    if ! egrep ':' freshUrl ; then 
+	    freshUrl="$(dirname "$(getAttr downloadPage).")/$freshUrl"
+    fi
 
     echo "Found download link: $freshUrl" >&2
 else
@@ -37,21 +46,35 @@ if [ x"$freshUrl" = x"$(cat "$src_defs_dir"/advertisedUrl)" ]; then
 fi
 
 version="$(echo "$freshUrl" | 
-  sed -re "$(getAttr versionExtractorSedScript \
-    's/.*-([0-9.]+)[.].*/\1/')")"
+  eval "sed -re \"$(getAttr versionExtractorSedScript \
+    's/.*-([0-9.]+)[.].*/\1/')\"")"
 
 mirrorUrl="$(echo "$freshUrl" | 
-  sed -r -e "$(getAttr versionReferenceCreator \
-    's/-([0-9.]+)[.]/-${version}./')" |
-  sed -r -e "$(getAttr mirrorSedScript)")"
+  eval "sed -r -e \"$(getAttr versionReferenceCreator \
+    's/-([0-9.]+)[.]/-${version}./')\"" |
+  eval "sed -r -e \"$(getAttr mirrorSedScript)\"")"
 
 hash=$(nix-prefetch-url "$freshUrl")
 
+baseName="$(getAttr baseName 'unnamed-package')"
+name="$baseName-$version"
+
+advertisedUrl="$freshUrl"
+url="$mirrorUrl"
+
+extraAssignments=""
+for i in $(getAttr extraVars ''); do
+  eval "$(getAttr "eval_$i" 'i=""')"
+  extraAssignments="$extraAssignments $i=\"$(eval echo \"\$$i\")\";"
+done
+
 cat << EOF > "$new_src_file"
 rec {
-  advertisedUrl="$freshUrl";
+  advertisedUrl="$advertisedUrl";
   version = "$version";
-  url="$mirrorUrl";
+  url="$url";
   hash = "$hash";
+  name = "$name";
+  $extraAssignments
 }
 EOF