#!/bin/bash # # The contents of this file are subject to the terms of the Common Development and # Distribution License (the License). You may not use this file except in compliance with the # License. # # You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the # specific language governing permission and limitations under the License. # # When distributing Covered Software, include this CDDL Header Notice in each file and include # the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL # Header, with the fields enclosed by brackets [] replaced by your own identifying # information: "Portions copyright [year] [name of copyright owner]". # # Copyright 2026 3A Systems, LLC. # Usage: refresh-launchers.sh BUILT LIB # # Copies each BUILT/*.exe over its namesake in LIB, unless the two differ only in the # toolchain stamp (same-pe-code.py). The Package/Deploy workflow runs it before it # commits LIB; the Build workflow runs it on known launcher pairs before merge. set -e here=$(dirname "$0") for built in "$1"/*.exe; do committed=$2/$(basename "$built") # Exit 1 (the code differs) and 2 (not readable as a PE image) both take the rebuilt # file: when in doubt, refresh. if [ -f "$committed" ] && python3 "$here/same-pe-code.py" "$committed" "$built"; then if ! cmp -s "$committed" "$built"; then echo "$committed differs from the rebuilt one only in the toolchain stamp - keeping it." fi continue fi cp "$built" "$committed" done