Skip to content

genlop

Nice emerge.log parser


Display the currently compiling packages in use

genlop -c

Search for portage tree sync/rsync history

genlop -r

Show full merge history

genlop -l

Calculate merge time for a specifik package

genlop -t

Show when unemerged a package

genlop -u

Display package history with examples (default if any option is used)

genlop -e mesa
 
 * media-libs/mesa

     Tue May 13 17:36:18 2025 >>> media-libs/mesa-25.0.5
     Tue Jun 10 08:49:19 2025 >>> media-libs/mesa-25.1.1
     Sat Jul  5 08:25:31 2025 >>> media-libs/mesa-25.1.5
     Sun Aug  3 08:34:21 2025 >>> media-libs/mesa-25.1.7
     Wed Sep 17 20:19:01 2025 >>> media-libs/mesa-25.1.8
     Fri Sep 19 01:06:41 2025 >>> media-libs/mesa-25.2.3
     Fri Jan  9 22:52:17 2026 >>> media-libs/mesa-25.3.2
     Mon Jan 12 17:28:11 2026 >>> media-libs/mesa-25.3.3
     Thu Jan 29 08:46:52 2026 >>> media-libs/mesa-25.3.3
     Thu Jan 29 09:13:37 2026 >>> media-libs/mesa-25.3.3
     Thu Jan 29 09:39:41 2026 >>> media-libs/mesa-25.3.3
  • Merge Time and Eta

Show current merge time and eta

genlop -c | grep -E 'current merge time|ETA'

Another way to show current merge time and eta

genlop -c | awk -F': ' '
/current merge time/ { printf "⏱  Merge time: %s\n", $2 }
/ETA/                { printf "⌛ ETA:        %s\n", $2 }
'

Minimalist one-liner (pure POSIX grep)

genlop -c | grep -e 'current merge time' -e '^ *ETA'

Equivalent methods to extract merge time and ETA from genlop output

genlop -c 2>&1 | grep -e 'current merge time' -e 'ETA'
       current merge time: 1 minute and 39 seconds. 
       ETA: 16 minutes and 5 seconds.               
genlop -c 2>&1 | tr '\r' '\n' | grep -e 'current merge time' -e 'ETA'
       current merge time: 1 minute and 44 seconds. 
       ETA: 16 minutes.                             
genlop -c 2>&1 | tr '\r' '\n' | awk '/current merge time/ || /ETA/'
       current merge time: 1 minute and 50 seconds. 
       ETA: 15 minutes and 54 seconds.              
genlop -c | tr '\r' '\n' | grep -E 'current merge time|ETA'
       current merge time: 2 minutes.               
       ETA: 15 minutes and 44 seconds.              
genlop -c | grep -e 'current merge time' -e '^ *ETA'
       current merge time: 2 minutes and 5 seconds. 
       ETA: 15 minutes and 39 seconds.              
genlop -c | grep -E --line-buffered 'current merge time|ETA'
       current merge time: 2 minutes and 10 seconds.
       ETA: 15 minutes and 34 seconds.              
genlop -c | sed 's/\r/\n/g' | grep -E 'current merge time|ETA'
       current merge time: 2 minutes and 16 seconds.
       ETA: 15 minutes and 28 seconds.              
genlop -c | tr '\r' '\n' | grep -E 'current merge time|ETA'
       current merge time: 2 minutes and 21 seconds.
       ETA: 15 minutes and 23 seconds.              
genlop -c | grep -e 'current merge time' -e '^ *ETA'                                                                                                                                     
       current merge time: 2 minutes and 32 seconds.
       ETA: 15 minutes and 12 seconds.