The omarchy install runs inside an arch-chroot to /mnt, so its log file (/var/log/omarchy-install.log from the installer's perspective) is at /mnt/var/log/omarchy-install.log from the live ISO. The previous script only read /var/log/omarchy-install.log, and 'cat $ARCHINSTALL_LOG $OMARCHY_LOG 2>/dev/null' swallowed the resulting 'No such file' error, so uploaded logs from the ISO contained only the archinstall portion. Prefer the /mnt path when it exists (live ISO post-install), fall back to /var/log when running on the installed system. Also print a visible separator between the two log sections and warn on stderr if the omarchy log is missing entirely (instead of silently producing an incomplete upload).
141 lines
4.0 KiB
Bash
Executable File
141 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Upload logs to logs.omarchy.org
|
|
# omarchy:args=<log-file>
|
|
# omarchy:hidden=true
|
|
|
|
LOG_TYPE="${1:-install}"
|
|
TEMP_LOG="/tmp/upload-log.txt"
|
|
SYSTEM_INFO="/tmp/system-info.txt"
|
|
|
|
# Get system information if fastfetch is available
|
|
if command -v fastfetch >/dev/null 2>&1; then
|
|
{
|
|
echo "========================================="
|
|
echo "SYSTEM INFORMATION"
|
|
echo "========================================="
|
|
# Use fastfetch with no logo to get clean output
|
|
fastfetch --logo none --pipe 2>/dev/null || echo "Failed to get system info"
|
|
echo ""
|
|
echo "========================================="
|
|
echo "LOG CONTENT"
|
|
echo "========================================="
|
|
echo ""
|
|
} >"$SYSTEM_INFO"
|
|
else
|
|
# Fallback to basic info if fastfetch isn't available
|
|
{
|
|
echo "========================================="
|
|
echo "SYSTEM INFORMATION"
|
|
echo "========================================="
|
|
echo "Hostname: $(hostname)"
|
|
echo "Kernel: $(uname -r)"
|
|
echo "Date: $(date)"
|
|
echo ""
|
|
echo "========================================="
|
|
echo "LOG CONTENT"
|
|
echo "========================================="
|
|
echo ""
|
|
} >"$SYSTEM_INFO"
|
|
fi
|
|
|
|
case "$LOG_TYPE" in
|
|
install)
|
|
# In the live ISO before reboot, the target system is mounted at /mnt so the
|
|
# omarchy install log lives at /mnt/var/log/omarchy-install.log. On the
|
|
# installed system it's at /var/log/omarchy-install.log. Prefer whichever
|
|
# exists, with /mnt taking precedence (only present in the ISO context, and
|
|
# there it's the right one).
|
|
ARCHINSTALL_LOG="/var/log/archinstall/install.log"
|
|
if [[ -s /mnt/var/log/omarchy-install.log ]]; then
|
|
OMARCHY_LOG="/mnt/var/log/omarchy-install.log"
|
|
else
|
|
OMARCHY_LOG="/var/log/omarchy-install.log"
|
|
fi
|
|
|
|
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
|
[[ -s $ARCHINSTALL_LOG ]] && cat "$ARCHINSTALL_LOG" >>"$TEMP_LOG"
|
|
if [[ -s $OMARCHY_LOG ]]; then
|
|
printf '\n========================================\nOMARCHY INSTALL LOG (%s)\n========================================\n\n' "$OMARCHY_LOG" >>"$TEMP_LOG"
|
|
cat "$OMARCHY_LOG" >>"$TEMP_LOG"
|
|
else
|
|
echo "Warning: omarchy install log not found (looked at /mnt/var/log/ and /var/log/)" >&2
|
|
fi
|
|
|
|
if [[ ! -s $TEMP_LOG ]]; then
|
|
echo "Error: No install logs found"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Uploading installation log to logs.omarchy.org..."
|
|
;;
|
|
|
|
this-boot)
|
|
# Combine system info with boot logs
|
|
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
|
journalctl -b 0 >>"$TEMP_LOG" 2>/dev/null
|
|
|
|
if [[ ! -s $TEMP_LOG ]]; then
|
|
echo "Error: No logs found for current boot"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Uploading current boot logs to logs.omarchy.org..."
|
|
;;
|
|
|
|
last-boot)
|
|
# Combine system info with previous boot logs
|
|
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
|
journalctl -b -1 >>"$TEMP_LOG" 2>/dev/null
|
|
|
|
if [[ ! -s $TEMP_LOG ]]; then
|
|
echo "Error: No logs found for previous boot"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Uploading previous boot logs to logs.omarchy.org..."
|
|
;;
|
|
|
|
installed|system-info)
|
|
# System info plus all installed packages
|
|
cat "$SYSTEM_INFO" >"$TEMP_LOG"
|
|
{
|
|
echo ""
|
|
echo "========================================="
|
|
echo "INSTALLED PACKAGES (pacman -Q)"
|
|
echo "========================================="
|
|
pacman -Q 2>/dev/null || echo "Failed to get package list"
|
|
} >>"$TEMP_LOG"
|
|
|
|
if [[ ! -s $TEMP_LOG ]]; then
|
|
echo "Error: Failed to gather system information"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Uploading system information to logs.omarchy.org..."
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: $0 [install|this-boot|last-boot|installed|system-info]"
|
|
echo " install - Upload installation logs (default)"
|
|
echo " this-boot - Upload logs from current boot"
|
|
echo " last-boot - Upload logs from previous boot"
|
|
echo " installed - Upload system info and installed packages"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo ""
|
|
|
|
URL=$(curl -sf -F "file=@$TEMP_LOG" https://logs.omarchy.org/)
|
|
|
|
if (( $? == 0 )) && [[ -n $URL ]]; then
|
|
echo "✓ Log uploaded successfully!"
|
|
echo "Share this URL:"
|
|
echo ""
|
|
echo " $URL"
|
|
else
|
|
echo "Error: Failed to upload log file"
|
|
exit 1
|
|
fi
|