Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/tools/update-verify/release/common/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 5 kB image not shown  

Quelle  unpack.sh   Sprache: Shell

 
#!/bin/bash

unpack_build () {
    unpack_platform="$1"
    dir_name="$2"
    pkg_file="$3"
    locale=$4
    unpack_jars=$5
    update_settings_string=$6
    # If provided, must be a directory containing `update-settings.ini` which
    # will be used instead of attempting to find this file in the unpacked
    # build. `update_settings_string` modifications will still be performed on
    # the file.
    local mac_update_settings_dir_override
    mac_update_settings_dir_override=$7
    local product
    product=$8

    if [ ! -f "$pkg_file" ]; then
      return 1
    fi
    mkdir -p "$dir_name"
    pushd "$dir_name" > /dev/null || exit
    case $unpack_platform in
        # $unpack_platform is either
        # - a balrog platform name (from testing/mozharness/scripts/release/update-verify-config-creator.py)
        # - a simple platform name (from tools/update-verify/release/updates/verify.sh)
        mac|Darwin_*)
            os=$(uname)
            # How we unpack a dmg differs depending on which platform we're on.
            if [[ "$os" == "Darwin" ]]
            then
                cd ../
                echo "installing $pkg_file"
                ../common/unpack-diskimage.sh "$pkg_file" mnt "$dir_name"
            else
                echo "Unpacking $pkg_file with dmg and hfsplus"
                # These commands are very verbose, so we redirect to /dev/null
                dmg extract ../"$pkg_file" hfsimg > /dev/null
                hfsplus hfsimg extractall > /dev/null
                # Remove unnecessary files
                # ' '               /Application shortcut inside the dmg
                # .background       dmg background picture
                # .DS_Store         MacOS attribute file
                # .VolumeIcon.icns  dmg icon
                # hfsimg            hfs image created with dmg extract
                rm -rf ' ' .background .DS_Store .VolumeIcon.icns hfsimg
                if [ "$(find . -mindepth 1 -maxdepth 1 | wc -l)" -ne 1 ]
                then
                    echo "Couldn't find .app package"
                    return 1
                fi
                appdir=$(ls -d ./*.app)
                if [ -d "${mac_update_settings_dir_override}" ]; then
                    cp "${mac_update_settings_dir_override}/update-settings.ini" "${appdir}/update-settings.ini"
                else
                    # The updater guesses the location of these files based on
                    # its own target architecture, not the mar. If we're not
                    # unpacking mac-on-mac, we need to copy them so it can find
                    # them. It's important to copy (and not move), because when
                    # we diff the installer vs updated build afterwards, the
                    # installer version will have them in their original place.
                    cp "${appdir}/Contents/Resources/update-settings.ini" "${appdir}/update-settings.ini"
                fi
                cp "${appdir}/Contents/Resources/precomplete" "${appdir}/precomplete"
            fi
            update_settings_file="${appdir}/update-settings.ini"
            ;;
        win32|WINNT_*)
            7z x ../"$pkg_file" > /dev/null
            if [ -d localized ]
            then
              mkdir bin/
              cp -rp nonlocalized/* bin/
              cp -rp localized/*    bin/
              rm -rf nonlocalized
              rm -rf localized
              if [ "$(find optional/ | wc -l)" -gt 1 ]
              then
                cp -rp optional/*     bin/
                rm -rf optional
              fi
            elif [ -d core ]
            then
              mkdir bin/
              cp -rp core/* bin/
              rm -rf core
            else
              for file in *.xpi
              do
                unzip -o "$file" > /dev/null
              done
              unzip -o "${locale}".xpi > /dev/null
            fi
            update_settings_file='bin/update-settings.ini'
            ;;
        linux|Linux_*)
            if echo "$pkg_file" | grep -q "tar.gz"
            then
                tar xfz ../"$pkg_file" > /dev/null
            elif echo "$pkg_file" | grep -q "tar.bz2"
            then
                tar xfj ../"$pkg_file" > /dev/null
            elif echo "$pkg_file" | grep -q "tar.xz"
            then
                tar xfJ ../"$pkg_file" > /dev/null
            else
                echo "Unknown package type for file: $pkg_file"
                exit 1
            fi
            update_settings_file=$(echo "$product" | tr '[:upper:]' '[:lower:]')'/update-settings.ini'
            ;;
        *)
            echo "Unknown platform to unpack: $unpack_platform"
            exit 1
    esac

    if [ -n "$unpack_jars" ]; then
        find . \( -name '*.jar' -o -name '*.ja' \) -exec unzip -o {} -d {}.dir \; >/dev/null
    fi

    if [ -n "$update_settings_string" ]; then
       echo "Modifying update-settings.ini"
       sed -e "s/^ACCEPTED_MAR_CHANNEL_IDS.*/ACCEPTED_MAR_CHANNEL_IDS=${update_settings_string}/" < "${update_settings_file}" > "${update_settings_file}.new"
       diff -u "${update_settings_file}" "${update_settings_file}.new"
       echo " "
       rm "${update_settings_file}"
       mv "${update_settings_file}.new" "${update_settings_file}"
    fi

    popd > /dev/null || exit

}

Messung V0.5
C=95 H=99 G=96

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.