#!/bin/bash # omarchy:summary=Upload logs to logs.omarchy.org # omarchy:args= # 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: $(uname -n)" 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