aboutsummaryrefslogtreecommitdiff
path: root/pkgs/build-support/upstream-updater
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2014-07-01 11:28:35 +0400
committerMichael Raskin <7c6f434c@mail.ru>2014-07-01 11:54:09 +0400
commit2e12709a2688232af9d752490f36127a3e8c7cba (patch)
tree5334ce01d40d2ccd08350f0dc33e9428c8aa5287 /pkgs/build-support/upstream-updater
parent5ed1adbbd4bcf1e3372d42fd73b0bfddbe4b84a8 (diff)
Allow update-walker to run directly from meta attributes
Diffstat (limited to 'pkgs/build-support/upstream-updater')
-rwxr-xr-xpkgs/build-support/upstream-updater/update-walker.sh38
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