diff options
author | Michael Raskin <7c6f434c@mail.ru> | 2014-07-01 11:28:35 +0400 |
---|---|---|
committer | Michael Raskin <7c6f434c@mail.ru> | 2014-07-01 11:54:09 +0400 |
commit | 2e12709a2688232af9d752490f36127a3e8c7cba (patch) | |
tree | 5334ce01d40d2ccd08350f0dc33e9428c8aa5287 /pkgs/build-support/upstream-updater | |
parent | 5ed1adbbd4bcf1e3372d42fd73b0bfddbe4b84a8 (diff) |
Allow update-walker to run directly from meta attributes
Diffstat (limited to 'pkgs/build-support/upstream-updater')
-rwxr-xr-x | pkgs/build-support/upstream-updater/update-walker.sh | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/pkgs/build-support/upstream-updater/update-walker.sh b/pkgs/build-support/upstream-updater/update-walker.sh index bc58f935f815..8aa9e723a3a2 100755 --- a/pkgs/build-support/upstream-updater/update-walker.sh +++ b/pkgs/build-support/upstream-updater/update-walker.sh @@ -2,12 +2,14 @@ own_dir="$(cd "$(dirname "$0")"; pwd)" +URL_WAS_SET= CURRENT_URL= CURRENT_REV= PREFETCH_COMMAND= NEED_TO_CHOOSE_URL=1 url () { + URL_WAS_SET=1 CURRENT_URL="$1" } @@ -101,14 +103,25 @@ ensure_name () { ensure_attribute_name () { echo "Ensuring attribute name. CURRENT_ATTRIBUTE_NAME: $CURRENT_ATTRIBUTE_NAME" >&2 + ensure_name [ -z "$CURRENT_ATTRIBUTE_NAME" ] && attribute_name "$CURRENT_NAME" echo "Resulting attribute name: $CURRENT_ATTRIBUTE_NAME" } +ensure_url () { + echo "Ensuring starting URL. CURRENT_URL: $CURRENT_URL" >&2 + ensure_attribute_name + [ -z "$CURRENT_URL" ] && CURRENT_URL="$(retrieve_meta downloadPage)" + [ -z "$CURRENT_URL" ] && CURRENT_URL="$(retrieve_meta downloadpage)" + [ -z "$CURRENT_URL" ] && CURRENT_URL="$(retrieve_meta homepage)" + echo "Resulting URL: $CURRENT_URL" +} + ensure_choice () { echo "Ensuring that choice is made." >&2 echo "NEED_TO_CHOOSE_URL: [$NEED_TO_CHOOSE_URL]." >&2 echo "CURRENT_URL: $CURRENT_URL" >&2 + [ -z "$URL_WAS_SET" ] && [ -z "$CURRENT_URL" ] && ensure_url [ -n "$NEED_TO_CHOOSE_URL" ] && { version_link '[.]tar[.]([^./])+$' unset NEED_TO_CHOOSE_URL @@ -153,8 +166,12 @@ attribute_name () { echo "CURRENT_ATTRIBUTE_NAME: $CURRENT_ATTRIBUTE_NAME" >&2 } +retrieve_meta () { + nix-instantiate --eval-only '<nixpkgs>' -A "$CURRENT_ATTRIBUTE_NAME".meta."$1" | xargs +} + retrieve_version () { - PACKAGED_VERSION="$(nix-instantiate --eval-only '<nixpkgs>' -A "$CURRENT_ATTRIBUTE_NAME".meta.version | xargs)" + PACKAGED_VERSION="$(retrieve_meta version)" } directory_of () { @@ -256,7 +273,24 @@ process_config () { CONFIG_DIR="$(directory_of "$1")" CONFIG_NAME="$(basename "$1")" BEGIN_EXPRESSION='# Generated upstream information'; - source "$CONFIG_DIR/$CONFIG_NAME" + if [ -f "$CONFIG_DIR/$CONFIG_NAME" ] && + [ "${CONFIG_NAME}" = "${CONFIG_NAME%.nix}" ]; then + source "$CONFIG_DIR/$CONFIG_NAME" + else + CONFIG_NAME="${CONFIG_NAME%.nix}" + ensure_attribute_name + [ -n "$(retrieve_meta updateWalker)" ] || + [ -n "$FORCE_UPDATE_WALKER" ] || { + echo "Error: package not marked as safe for update-walker" >&2 + echo "Set FORCE_UPDATE_WALKER=1 to override" >&2 + exit 1; + } + [ -z "$(retrieve_meta fullRegenerate)" ] && eval " + do_overwrite(){ + do_overwrite_just_version + } + " + fi ensure_name ensure_attribute_name retrieve_version |