diff --git a/ublinux/scripts/grub-functions b/ublinux/scripts/grub-functions index 4487002..8458d76 100755 --- a/ublinux/scripts/grub-functions +++ b/ublinux/scripts/grub-functions @@ -14,36 +14,54 @@ exec_get_all_menuentry(){ VER_DISTRIB=$(sed -En "/VERSION_ID=/{s/VERSION_ID=(.*)/\1/p}" ${FILE_OSRELEASE}) FILE_GRUB_MAIN="${PATH_GRUB}/ublinux/grub_${LANG%_*}.cfg" - sed -En "/menuentry/{ - /(ISO|Install|Установка)/!{ - s/^[ \t]*// - s/\\$\{NAME_DISTRIB\}/${NAME_DISTRIB}/ - s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/ - s/menuentry \"(.*${NAME_DISTRIB}.*${VER_DISTRIB}.*)\" .*/\1/p - } - }" ${FILE_GRUB_MAIN} + if [[ -f ${FILE_GRUB_MAIN} ]]; then + sed -En "/menuentry/{ + /(ISO|Install|Установка)/!{ + s/^[ \t]*// + s/\\$\{NAME_DISTRIB\}/${NAME_DISTRIB}/ + s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/ + s/menuentry \"(.*${NAME_DISTRIB}.*${VER_DISTRIB}.*)\" .*/\1/p + } + }" ${FILE_GRUB_MAIN} + fi FILE_GRUB_ADDON="${PATH_GRUB}/ublinux/grub_${LANG%_*}_addon.cfg" - NAME_MENU_GRUB_ADDON=$(sed -En "/${FILE_GRUB_ADDON##*/}/{x;{s/menuentry \"(.*)\" .*/\1/p};d;}; x" ${FILE_GRUB_MAIN}) - sed -En "/menuentry/{ - /(ISO|Install|Установка)/!{ - s/^[ \t]*/${NAME_MENU_GRUB_ADDON}>/ - s/\\$\{NAME_DISTRIB\}/${NAME_DISTRIB}/ - s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/ - s/menuentry \"(.*${NAME_DISTRIB}.*${VER_DISTRIB}.*)\" .*/\1/p - } - }" ${FILE_GRUB_ADDON} + if [[ -f ${FILE_GRUB_ADDON} ]]; then + NAME_MENU_GRUB_ADDON=$(sed -En "/${FILE_GRUB_ADDON##*/}/{x;{s/menuentry \"(.*)\" .*/\1/p};d;}; x" ${FILE_GRUB_MAIN}) + sed -En "/menuentry/{ + /(ISO|Install|Установка)/!{ + s/^[ \t]*/${NAME_MENU_GRUB_ADDON}>/ + s/\\$\{NAME_DISTRIB\}/${NAME_DISTRIB}/ + s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/ + s/menuentry \"(.*${NAME_DISTRIB}.*${VER_DISTRIB}.*)\" .*/\1/p + } + }" ${FILE_GRUB_ADDON} + fi FILE_GRUB_BOOTHDD="${PATH_GRUB}/ublinux/grub_${LANG%_*}_boothdd.cfg" - NAME_MENU_GRUB_BOOTHDD=$(sed -En "/${FILE_GRUB_BOOTHDD##*/}/{x;{s/menuentry \"(.*)\" .*/\1/p};d;}; x" ${FILE_GRUB_MAIN}) - sed -En "/menuentry/{ - /(Back|Возврат)/!{ - s/^[ \t]*/${NAME_MENU_GRUB_BOOTHDD}>/ - s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/ - s/menuentry \"(.*)\" .*/\1/p - } - }" ${FILE_GRUB_BOOTHDD} + if [[ -f ${FILE_GRUB_BOOTHDD} ]]; then + NAME_MENU_GRUB_BOOTHDD=$(sed -En "/${FILE_GRUB_BOOTHDD##*/}/{x;{s/menuentry \"(.*)\" .*/\1/p};d;}; x" ${FILE_GRUB_MAIN}) + sed -En "/menuentry/{ + /(Back|Возврат)/!{ + s/^[ \t]*/${NAME_MENU_GRUB_BOOTHDD}>/ + s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/ + s/menuentry \"(.*)\" .*/\1/p + } + }" ${FILE_GRUB_BOOTHDD} + fi + + FILE_GRUB_LOCAL="${PATH_GRUB}/ublinux/grub_local.cfg" + if [[ -f ${FILE_GRUB_LOCAL} ]]; then + NAME_MENU_GRUB_LOCAL=$(sed -En "/${FILE_GRUB_LOCAL##*/}/{x;{s/menuentry \"(.*)\" .*/\1/p};d;}; x" ${FILE_GRUB_MAIN} | sed -E "s/^[[:blank:]]//") + sed -En "/menuentry/{ + /(Back|Возврат)/!{ + s/^[ \t]*/${NAME_MENU_GRUB_LOCAL}>/ + s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/ + s/menuentry \"(.*)\" .*/\1/p + } + }" ${FILE_GRUB_LOCAL} + fi } exec_get_last_menuentry(){