diff options
Diffstat (limited to 'pkgs/build-support/upstream-updater/update-upstream-data.sh')
-rwxr-xr-x | pkgs/build-support/upstream-updater/update-upstream-data.sh | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/pkgs/build-support/upstream-updater/update-upstream-data.sh b/pkgs/build-support/upstream-updater/update-upstream-data.sh index 4aad91fdac2b..b07e867fda97 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 |