summary refs log tree commit diff
path: root/pkgs/build-support/upstream-updater/update-walker.sh
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2012-11-08 22:59:57 +0400
committerMichael Raskin <7c6f434c@mail.ru>2012-11-08 23:15:33 +0400
commita73aa0458aba01f0899c6b909eca1c3f6c7deb93 (patch)
tree2a003a851f3cd1fb5453c46d99defc725aa83eb2 /pkgs/build-support/upstream-updater/update-walker.sh
parent8af08d0d363d03a890363f1cf42f0dfe729b4d68 (diff)
downloadnixlib-a73aa0458aba01f0899c6b909eca1c3f6c7deb93.tar
nixlib-a73aa0458aba01f0899c6b909eca1c3f6c7deb93.tar.gz
nixlib-a73aa0458aba01f0899c6b909eca1c3f6c7deb93.tar.bz2
nixlib-a73aa0458aba01f0899c6b909eca1c3f6c7deb93.tar.lz
nixlib-a73aa0458aba01f0899c6b909eca1c3f6c7deb93.tar.xz
nixlib-a73aa0458aba01f0899c6b909eca1c3f6c7deb93.tar.zst
nixlib-a73aa0458aba01f0899c6b909eca1c3f6c7deb93.zip
Unify and make customizable output of obtained upstream data
Diffstat (limited to 'pkgs/build-support/upstream-updater/update-walker.sh')
-rwxr-xr-xpkgs/build-support/upstream-updater/update-walker.sh33
1 files changed, 25 insertions, 8 deletions
diff --git a/pkgs/build-support/upstream-updater/update-walker.sh b/pkgs/build-support/upstream-updater/update-walker.sh
index 6067cbfaebca..e96f6990d16c 100755
--- a/pkgs/build-support/upstream-updater/update-walker.sh
+++ b/pkgs/build-support/upstream-updater/update-walker.sh
@@ -107,20 +107,36 @@ 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=\"$CURRENT_NAME-$CURRENT_VERSION\";"
+  echo "${1}  hash=\"$CURRENT_HASH\";"
+  echo "${1}  url=\"$CURRENT_URL\";"
+  echo "${1}  sha256=\"$CURRENT_HASH\";"
+  echo "$2"
+}
+
 do_regenerate () {
-  cat "$1" | grep -F '# Generated upstream information' -B 999999;
-  echo "  rec {"
-  echo "    baseName=\"$CURRENT_NAME\";"
-  echo "    version=\"$CURRENT_VERSION\";"
-  echo '    name="${baseName}-${version}";'
-  echo "    hash=\"$CURRENT_HASH\";"
-  echo "    url=\"$CURRENT_URL\";"
-  cat "$1" | grep -F '# Generated upstream information' -A 999999 | grep -E '^ *[}]; *$' -A 999999;
+  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 () {
@@ -132,6 +148,7 @@ do_overwrite () {
 process_config () {
   CONFIG_DIR="$(directory_of "$1")"
   source "$CONFIG_DIR/$(basename "$1")"
+  BEGIN_EXPRESSION='# Generated upstream information';
   retrieve_version
   ensure_version
   update_found && do_overwrite "$CURRENT_TARGET"