Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/taskcluster/docker/diffoscope/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  get_and_diffoscope   Sprache: unbekannt

 
#!/bin/bash

set -e
set -x
set -o pipefail

cd /builds/worker

mkdir a b

# /builds/worker/bin contains wrapper binaries to divert what diffoscope
# needs to use, so it needs to appear first.
export PATH=/builds/worker/bin:$PATH

# Until https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879010 is
# implemented, it's better to first manually extract the data.
# Plus dmg files are not supported yet.

RESOURCE_DIR=firefox
case "$ORIG_URL" in
*.zip|*.apk)
 curl -L "$ORIG_URL" > a.zip
 curl -L "$NEW_URL" > b.zip
 unzip -d a a.zip
 unzip -d b b.zip
 ;;
*.tar.zst)
 curl -L "$ORIG_URL" | tar -C a --zstd -xf -
 curl -L "$NEW_URL" | tar -C b --zstd -xf -
 ;;
*.tar.bz2)
 curl -L "$ORIG_URL" | tar -C a -jxf -
 curl -L "$NEW_URL" | tar -C b -jxf -
 ;;
*.tar.xz)
 # Account for comparing with old bz2 format
 curl -L "$ORIG_URL" | tar -C a -Jxf -
 curl -L "$NEW_URL" | tar -C b -Jxf -
 ;;
*.tar.gz)
 curl -L "$ORIG_URL" | tar -C a -zxf -
 curl -L "$NEW_URL" | tar -C b -zxf -
 ;;
*.dmg)
 for tool in lipo otool; do
  ln -s $MOZ_FETCHES_DIR/cctools/bin/x86_64-apple-darwin*-$tool bin/$tool
 done
 curl -L "$ORIG_URL" > a.dmg
 curl -L "$NEW_URL" > b.dmg
 for i in a b; do
  $MOZ_FETCHES_DIR/dmg/dmg extract $i.dmg $i.hfs
  $MOZ_FETCHES_DIR/dmg/hfsplus $i.hfs extractall / $i
 done
 RESOURCE_DIR=$(cd b; echo */Contents/Resources)
 ;;
*)
 ARTIFACT=$(basename "${ORIG_URL}")
 curl -L "$ORIG_URL" > "a/${ARTIFACT}"
 curl -L "$NEW_URL" > "b/${ARTIFACT}"
esac

case "$ORIG_URL" in
*/target.apk)
 OMNIJAR=assets/omni.ja
 ;;
*)
 OMNIJAR=omni.ja
 ;;
esac

# Builds are 99% of the time differing in some small ways, so it's not
# really useful to report a failure (at least not until we actually
# care about the builds being 100% identical).
POST=true

fail() {
 exit 1
}

for option; do
 case "$option" in
 --unpack)
  CURDIR=$PWD
  for dir in a b; do
   # Need to run mach python from inside the gecko source.
   # See bug #1533642.
   (cd $GECKO_PATH && ./mach python toolkit/mozapps/installer/unpack.py --omnijar $OMNIJAR "$CURDIR/$dir/$RESOURCE_DIR")
  done
  ;;
 --fail)
  POST="fail"
  ;;
 *)
  echo "Unsupported option: $option" >&2
  exit 1
 esac
done

if [ -n "$PRE_DIFF" ]; then
 eval $PRE_DIFF
fi

if eval diffoscope \
 --html diff.html \
 --text diff.txt \
 --progress \
 $DIFFOSCOPE_ARGS \
 a b
then
 # Ok
 :
else
 $(dirname $0)/report_error diff
 $POST
fi

[ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet)  ]