about summary refs log tree commit diff
path: root/pkgs/build-support/upstream-updater/update-walker.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/upstream-updater/update-walker.sh')
-rwxr-xr-xpkgs/build-support/upstream-updater/update-walker.sh320
1 files changed, 0 insertions, 320 deletions
diff --git a/pkgs/build-support/upstream-updater/update-walker.sh b/pkgs/build-support/upstream-updater/update-walker.sh
deleted file mode 100755
index 9172a41718c84..0000000000000
--- a/pkgs/build-support/upstream-updater/update-walker.sh
+++ /dev/null
@@ -1,320 +0,0 @@
-#! /bin/sh
-
-own_dir="$(cd "$(dirname "$0")"; pwd)"
-
-URL_WAS_SET=
-DL_URL_RE=
-CURRENT_URL=
-CURRENT_REV=
-PREFETCH_COMMAND=
-NEED_TO_CHOOSE_URL=1
-
-url () {
-  URL_WAS_SET=1
-  CURRENT_URL="$1"
-}
-
-dl_url_re () {
-  DL_URL_RE="$1"
-}
-
-version_unpack () {
-  sed -re '
-    s/[.]/ /g; 
-    s@/@ / @g
-    s/-(rc|pre)/ -1 \1 /g; 
-    s/-(gamma)/ -2 \1 /g; 
-    s/-(beta)/ -3 \1 /g; 
-    s/-(alpha)/ -4 \1 /g;
-    s/[-]/ - /g; 
-    '
-}
-
-version_repack () {
-  sed -re '
-    s/ - /-/g;
-    s/ -[0-9]+ ([a-z]+) /-\1/g;
-    s@ / @/@g
-    s/ /./g; 
-    '
-}
-
-version_sort () {
-  version_unpack | 
-    sort -t ' ' -n $(for i in $(seq 30); do echo " -k${i}n" ; done) | tac |
-    version_repack
-}
-
-position_choice () {
-  head -n "${1:-1}" | tail -n "${2:-1}"
-}
-
-matching_links () {
-  "$own_dir"/urls-from-page.sh "$CURRENT_URL" | grep -E "$1"
-}
-
-link () {
-  CURRENT_URL="$(matching_links "$1" | position_choice "$2" "$3")"
-  unset NEED_TO_CHOOSE_URL
-  echo "Linked by: $*"
-  echo "URL: $CURRENT_URL" >&2
-}
-
-version_link () {
-  CURRENT_URL="$(matching_links "$1" | version_sort | position_choice "$2" "$3")"
-  unset NEED_TO_CHOOSE_URL
-  echo "Linked version by: $*"
-  echo "URL: $CURRENT_URL" >&2
-}
-
-redirect () {
-  CURRENT_URL="$(curl -I -L --max-redirs "${1:-99}" "$CURRENT_URL" | 
-    grep -E '^[Ll]ocation: ' | position_choice "${2:-999999}" "$3" |
-    sed -e 's/^[Ll]ocation: //; s/\r//')"
-  echo "Redirected: $*"
-  echo "URL: $CURRENT_URL" >&2
-}
-
-replace () {
-  sed -re "s	$1	$2	g"
-}
-
-process () {
-  CURRENT_URL="$(echo "$CURRENT_URL" | replace "$1" "$2")"
-  echo "Processed: $*"
-  echo "URL: $CURRENT_URL" >&2
-}
-
-version () {
-  CURRENT_VERSION="$(echo "$CURRENT_URL" | replace "$1" "$2")"
-  echo "Version: $CURRENT_VERSION" >&2
-}
-
-ensure_version () {
-  echo "Ensuring version. CURRENT_VERSION: $CURRENT_VERSION" >&2
-  [ -z "$CURRENT_VERSION" ] && version '.*-([0-9.]+)[-._].*' '\1'
-}
-
-ensure_target () {
-  echo "Ensuring target. CURRENT_TARGET: $CURRENT_TARGET" >&2
-  [ -z "$CURRENT_TARGET" ] && target "$(basename "$CONFIG_NAME" .upstream).nix"
-}
-
-ensure_name () {
-  echo "Ensuring name. CURRENT_NAME: $CURRENT_NAME" >&2
-  [ -z "$CURRENT_NAME" ] && name "$(basename "$CONFIG_DIR")"
-  echo "Resulting name: $CURRENT_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 "${DL_URL_RE:-[.]tar[.]([^./])+\$}"
-    unset NEED_TO_CHOOSE_URL
-  }
-  [ -z "$CURRENT_URL" ] && {
-    echo "Error: empty CURRENT_URL"
-    echo "Error: empty CURRENT_URL" >&2
-    exit 1
-  }
-}
-
-revision () {
-  CURRENT_REV="$1"
-  echo "CURRENT_REV: $CURRENT_REV"
-}
-
-prefetch_command () {
-  PREFETCH_COMMAND="$1"
-}
-
-prefetch_command_rel () {
-  PREFETCH_COMMAND="$(dirname "$0")/$1"
-}
-
-ensure_hash () {
-  echo "Ensuring hash. CURRENT_HASH: $CURRENT_HASH" >&2
-  [ -z "$CURRENT_HASH" ] && hash
-}
-
-hash () {
-  CURRENT_HASH="$(${PREFETCH_COMMAND:-nix-prefetch-url} "$CURRENT_URL" $CURRENT_REV)"
-  echo "CURRENT_HASH: $CURRENT_HASH" >&2
-}
-
-name () {
-  CURRENT_NAME="$1"
-  echo "CURRENT_NAME: $CURRENT_NAME" >&2
-}
-
-attribute_name () {
-  CURRENT_ATTRIBUTE_NAME="$1"
-  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="$(retrieve_meta version)"
-}
-
-ensure_dl_url_re () {
-  echo "Ensuring DL_URL_RE. DL_URL_RE: $DL_URL_RE" >&2
-  [ -z "$DL_URL_RE" ] && dl_url_re "$(retrieve_meta downloadURLRegexp)"
-  echo "DL_URL_RE: $DL_URL_RE" >&2
-}
-
-directory_of () {
-  cd "$(dirname "$1")"; pwd
-}
-
-full_path () {
-  echo "$(directory_of "$1")/$(basename "$1")"
-}
-
-target () {
-  CURRENT_TARGET="$1"
-  { [ "$CURRENT_TARGET" = "${CURRENT_TARGET#/}" ] && CURRENT_TARGET="$CONFIG_DIR/$CURRENT_TARGET"; }
-  echo "Target set to: $CURRENT_TARGET"
-}
-
-marker () {
-  BEGIN_EXPRESSION="$1"
-}
-
-update_found () {
-  echo "Compare: $CURRENT_VERSION vs $PACKAGED_VERSION"
-  [ "$CURRENT_VERSION" != "$PACKAGED_VERSION" ]
-}
-
-do_write_expression () {
-  echo "${1}rec {"
-  echo "${1}  baseName=\"$CURRENT_NAME\";"
-  echo "${1}  version=\"$CURRENT_VERSION\";"
-  echo "${1}  name=\"\${baseName}-\${version}\";"
-  echo "${1}  hash=\"$CURRENT_HASH\";"
-  echo "${1}  url=\"$CURRENT_URL\";"
-  [ -n "$CURRENT_REV" ] && echo "${1}  rev=\"$CURRENT_REV\";"
-  echo "${1}  sha256=\"$CURRENT_HASH\";"
-  echo "$2"
-}
-
-line_position () {
-  file="$1"
-  regexp="$2"
-  count="${3:-1}"
-  grep -E "$regexp" -m "$count" -B 999999 "$file" | wc -l
-}
-
-replace_once () {
-  file="$1"
-  regexp="$2"
-  replacement="$3"
-  instance="${4:-1}"
-
-  echo "Replacing once:"
-  echo "file: [[$file]]"
-  echo "regexp: [[$regexp]]"
-  echo "replacement: [[$replacement]]"
-  echo "instance: [[$instance]]"
-
-  position="$(line_position "$file" "$regexp" "$instance")"
-  sed -re "${position}s	$regexp	$replacement	" -i "$file"
-}
-
-set_var_value () {
-  var="${1}"
-  value="${2}"
-  instance="${3:-1}"
-  file="${4:-$CURRENT_TARGET}"
-  no_quotes="${5:-0}"
-
-  quote='"'
-  let "$no_quotes" && quote=""
-
-  replace_once "$file" "${var} *= *.*" "${var} = ${quote}${value}${quote};" "$instance"
-}
-
-do_regenerate () {
-  BEFORE="$(cat "$1" | grep -F "$BEGIN_EXPRESSION" -B 999999;)"
-  AFTER_EXPANDED="$(cat "$1" | grep -F "$BEGIN_EXPRESSION" -A 999999 | grep -E '^ *[}] *; *$' -A 999999;)"
-  AFTER="$(echo "$AFTER_EXPANDED" | tail -n +2)"
-  CLOSE_BRACE="$(echo "$AFTER_EXPANDED" | head -n 1)"
-  SPACING="$(echo "$CLOSE_BRACE" | sed -re 's/[^ ].*//')"
-
-  echo "$BEFORE"
-  do_write_expression "$SPACING" "$CLOSE_BRACE"
-  echo "$AFTER"
-}
-
-do_overwrite () {
-  ensure_hash
-  do_regenerate "$1" > "$1.new.tmp"
-  mv "$1.new.tmp" "$1"
-}
-
-do_overwrite_just_version () {
-  ensure_hash
-  set_var_value version $CURRENT_VERSION
-  set_var_value sha256 $CURRENT_HASH
-}
-
-minimize_overwrite() {
-  do_overwrite(){
-    do_overwrite_just_version
-  }
-}
-
-process_config () {
-  CONFIG_DIR="$(directory_of "$1")"
-  CONFIG_NAME="$(basename "$1")"
-  BEGIN_EXPRESSION='# Generated upstream information';
-  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 "
-      minimize_overwrite
-    "
-  fi
-  ensure_attribute_name
-  retrieve_version
-  ensure_dl_url_re
-  ensure_choice
-  ensure_version
-  ensure_target
-  update_found && do_overwrite "$CURRENT_TARGET"
-}
-
-source "$own_dir/update-walker-service-specific.sh"
-
-process_config "$1"