Better logs and resolution
This commit is contained in:
3 files changed
+24
-2
No files matched your search
@@ -12,6 +12,16 @@ BUILD_ROOT=$(realpath "$SCRIPT_DIR/..")
|
|||||||
source "$BUILD_ROOT/helpers/message-helpers.sh"
|
source "$BUILD_ROOT/helpers/message-helpers.sh"
|
||||||
source "$BUILD_ROOT/helpers/paths.sh"
|
source "$BUILD_ROOT/helpers/paths.sh"
|
||||||
|
|
||||||
|
# Extract mirror from arguments for log naming (before args are shifted)
|
||||||
|
LOG_MIRROR=""
|
||||||
|
for ((i=1; i<=$#; i++)); do
|
||||||
|
if [[ "${!i}" == "--mirror" ]]; then
|
||||||
|
next=$((i+1))
|
||||||
|
LOG_MIRROR="${!next}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# Setup logging with timestamps
|
# Setup logging with timestamps
|
||||||
mkdir -p "$LOG_DIR"
|
mkdir -p "$LOG_DIR"
|
||||||
|
|
||||||
@@ -25,7 +35,11 @@ if [[ -d "$LOG_DIR" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||||||
LOG_FILE="$LOG_DIR/repo_${TIMESTAMP}.log"
|
if [[ -n "$LOG_MIRROR" ]]; then
|
||||||
|
LOG_FILE="$LOG_DIR/repo_${LOG_MIRROR}_${TIMESTAMP}.log"
|
||||||
|
else
|
||||||
|
LOG_FILE="$LOG_DIR/repo_${TIMESTAMP}.log"
|
||||||
|
fi
|
||||||
|
|
||||||
# Show usage
|
# Show usage
|
||||||
show_usage() {
|
show_usage() {
|
||||||
|
|||||||
@@ -135,6 +135,12 @@ RUN useradd -m -G wheel -s /bin/bash builder && \
|
|||||||
RUN sed -i 's/^#MAKEFLAGS=.*/MAKEFLAGS="-j$(nproc)"/' /etc/makepkg.conf && \
|
RUN sed -i 's/^#MAKEFLAGS=.*/MAKEFLAGS="-j$(nproc)"/' /etc/makepkg.conf && \
|
||||||
sed -i 's/^COMPRESSZST=.*/COMPRESSZST=(zstd -c -z -q --threads=0 -)/' /etc/makepkg.conf
|
sed -i 's/^COMPRESSZST=.*/COMPRESSZST=(zstd -c -z -q --threads=0 -)/' /etc/makepkg.conf
|
||||||
|
|
||||||
|
# Pacman wrapper that auto-resolves package conflicts (e.g. rustup vs rust).
|
||||||
|
# makepkg only passes --noconfirm to pacman, which defaults to 'N' on conflict
|
||||||
|
# prompts. --ask 4 tells pacman to answer 'yes' to replacement prompts instead.
|
||||||
|
RUN printf '#!/bin/bash\nexec /usr/bin/pacman --ask 4 "$@"\n' > /usr/local/bin/pacman-for-makepkg && \
|
||||||
|
chmod +x /usr/local/bin/pacman-for-makepkg
|
||||||
|
|
||||||
RUN rm -rf /etc/pacman.d/gnupg/{openpgp-revocs.d/,private-keys-v1.d/,pubring.gpg~,gnupg.S.}*
|
RUN rm -rf /etc/pacman.d/gnupg/{openpgp-revocs.d/,private-keys-v1.d/,pubring.gpg~,gnupg.S.}*
|
||||||
|
|
||||||
USER builder
|
USER builder
|
||||||
|
|||||||
+3
-1
@@ -166,9 +166,11 @@ build_package() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Build package without signing (signing is done separately)
|
# Build package without signing (signing is done separately)
|
||||||
|
# PACMAN override uses a wrapper that adds --ask 4 to auto-resolve conflicts
|
||||||
|
# (e.g. rustup replacing rust) since --noconfirm defaults to 'N' on those prompts
|
||||||
MAKEPKG_FLAGS="-scf --noconfirm"
|
MAKEPKG_FLAGS="-scf --noconfirm"
|
||||||
|
|
||||||
if makepkg $MAKEPKG_FLAGS; then
|
if PACMAN=/usr/local/bin/pacman-for-makepkg makepkg $MAKEPKG_FLAGS; then
|
||||||
# Ensure output directory exists
|
# Ensure output directory exists
|
||||||
mkdir -p "$BUILD_OUTPUT_DIR"
|
mkdir -p "$BUILD_OUTPUT_DIR"
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user