Ignore:
Timestamp:
Apr 3, 2019, 12:08:23 PM (2 years ago)
Author:
daduve
Message:

New grub-menu script to dectect list grub menu

File:
1 edited

Legend:

Unmodified
Added
Removed
  • first-aid-kit/trunk/fuentes/first-aid-kit.install/usr/share/first-aid-kit/grub-listmenu.sh

    r8497 r8615  
    1 gawk  'BEGIN {                                                                                                                       
    2   l=0                                                                                                                               
    3   menuindex= 0                                                                                                                       
    4   stack[t=0] = 0                                                                                                                     
    5 }                                                                                                                                   
    6 
    7 function push(x) { stack[t++] = x }                                                                                                 
    8 
    9 function pop() { if (t > 0) { return stack[--t] } else { return "" }  }                                                             
    10 
    11 {                                                                                                                                   
    12 
    13 if( $0 ~ /.*menu.*{.*/ )                                                                                                             
    14 {                                                                                                                                   
    15   push( $0 )                                                                                                                         
    16   l++;                                                                                                                               
    17 
    18 } else if( $0 ~ /.*{.*/ )                                                                                                           
    19 {                                                                                                                                   
    20   push( $0 )                                                                                                                         
    21 
    22 } else if( $0 ~ /.*}.*/ )                                                                                                           
    23 {                                                                                                                                   
    24   X = pop()                                                                                                                         
    25   if( X ~ /.*menu.*{.*/ )                                                                                                           
    26   {                                                                                                                                 
    27      l--;                                                                                                                           
    28      match( X, /^[^'\'']*'\''([^'\'']*)'\''.*$/, arr )                                                                               
    29 
    30      if( l == 0 )                                                                                                                   
    31      {                                                                                                                               
    32        print menuindex ": " arr[1]                                                                                                   
    33        menuindex++                                                                                                                   
    34        submenu=0                                                                                                                     
    35      } else                                                                                                                         
    36      {                                                                                                                               
    37        print "  " (menuindex-1) ">" submenu " " arr[1]                                                                               
    38        submenu++                                                                                                                     
    39      }                                                                                                                               
    40   }                                                                                                                                 
    41 }                                                                                                                                   
    42 
    43 }' /boot/grub/grub.cfg
     1#!/bin/bash
     2awk -F\' '$1=="menuentry " || $1=="submenu " {print i++ " : " $2}; /\tmenuentry / {print "\t" i-1">"j++ " : " $2};' /boot/grub/grub.cfg
Note: See TracChangeset for help on using the changeset viewer.