diff --git a/VERSION.md b/VERSION.md index 1d763cf..179c82d 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -VERSION 2.10 +VERSION 2.11 diff --git a/ublinux/rc.post.d/02-hwclock b/ublinux/rc.post.d/02-hwclock index 5ea0614..aac8c6a 100755 --- a/ublinux/rc.post.d/02-hwclock +++ b/ublinux/rc.post.d/02-hwclock @@ -4,11 +4,16 @@ ENABLED=yes [[ ${ENABLED} != "yes" ]] && exit 0 DEBUGMODE=no -SOURCE=/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. +SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 debug_mode "$0" "$@" +SYSCONF="${ROOTFS}/${SYSCONF}" +SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/clock; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null + [[ ${SETCLKATSTART,,} =~ ^no$|^off$|^disable$ ]] && exit 0 if [[ ${HWCLOCK_SYNC,,} == "utc" ]]; then HWCLOCK_OPTIONS="--utc" diff --git a/ublinux/scripts/grub-functions b/ublinux/scripts/grub-functions new file mode 100755 index 0000000..a024310 --- /dev/null +++ b/ublinux/scripts/grub-functions @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +ENABLED=yes +[ "$ENABLED" != "yes" ] && exit 0 + +SELF_NAME="grub-functions" + +PATH_GRUB="/memory/data/from/0/boot/grub/" + +exec_get_all_menuentry(){ +## Показать все варианты загрузки из grub_*.cfg grub_*_addon.cfg grub_*_boothdd.cfg + FILE_OSRELEASE="/etc/os-release" + NAME_DISTRIB=$(sed -En "/VARIANT=/{s/VARIANT=\"(.*)\"/\1/p}" ${FILE_OSRELEASE}) + 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} + + + 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} + + 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} +} + +exec_get_last_menuentry(){ +## Показать последний выбранный вариант загрузки + FILE_GRUBENV="${PATH_GRUB}/grubenv" + sed -En "/saved_entry=/{s/saved_entry=(.*)/\1/p}" ${FILE_GRUBENV} +} + +################ +##### MAIN ##### +################ + +# Возможность подключить как source из любого скрипта и вызов встроенных функций + + if [[ ${0##*/} == ${SELF_NAME} ]]; then + while [[ $# -gt 0 ]]; do + declare -f ${1} &>/dev/null && FUNCTION+="; ${1}" && shift || { FUNCTION+=" ${1}" && shift; } + done + eval ${FUNCTION#*; } + else + true + fi diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index 4bc2958..c236268 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -28,7 +28,7 @@ [/etc/ublinux/config] ## Config verison ## Версия конфигурации -VERSION=2.10 +VERSION=2.11 ## Additional boot parameters ## Дополнительные параметры загрузки, только для управления модулями