diff --git a/ublinux/rc.halt.pre/20-grub b/ublinux/rc.halt.pre/20-grub index ccfce4f..18a9c73 100755 --- a/ublinux/rc.halt.pre/20-grub +++ b/ublinux/rc.halt.pre/20-grub @@ -15,8 +15,8 @@ SOURCE=${SYSCONF}/boot; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null get_path_grub2(){ NAME_GRUB_CFG="grub.cfg" - PATH_GRUB=$(find ${ROOTFS}/memory/data/from/*/boot/grub/ -maxdepth 1 -type f -name "${NAME_GRUB_CFG}" | head -1) - [[ -n ${PATH_GRUB} ]] || PATH_GRUB="$(find ${ROOTFS}/memory/data/from/*/ -maxdepth 3 -type f -name "${NAME_GRUB_CFG}" | head -1)" + PATH_GRUB=$(find /memory/data/from/*/boot/grub/ -maxdepth 1 -type f -name "${NAME_GRUB_CFG}" | head -1) + [[ -n ${PATH_GRUB} ]] || PATH_GRUB="$(find /memory/data/from/*/ -maxdepth 3 -type f -name "${NAME_GRUB_CFG}" | head -1)" [[ -n ${PATH_GRUB} ]] || return 1 [[ -w ${PATH_GRUB} ]] && PATH_GRUB="${PATH_GRUB%/*}" || return 1 } diff --git a/ublinux/rc.halt.pre/80-upgrade b/ublinux/rc.halt.pre/70-upgrade similarity index 100% rename from ublinux/rc.halt.pre/80-upgrade rename to ublinux/rc.halt.pre/70-upgrade diff --git a/ublinux/rc.halt.pre/81-kernel b/ublinux/rc.halt.pre/71-kernel similarity index 100% rename from ublinux/rc.halt.pre/81-kernel rename to ublinux/rc.halt.pre/71-kernel diff --git a/ublinux/rc.halt.pre/85-chmod b/ublinux/rc.halt.pre/75-chmod similarity index 100% rename from ublinux/rc.halt.pre/85-chmod rename to ublinux/rc.halt.pre/75-chmod diff --git a/ublinux/rc.halt.pre/75-save-cache b/ublinux/rc.halt.pre/75-save-cache deleted file mode 100755 index 901f92d..0000000 --- a/ublinux/rc.halt.pre/75-save-cache +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -ENABLED=yes -[[ ${ENABLED} == "yes" ]] || exit 0 - -SOURCE=/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 -SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null -SOURCE=${SYSCONF}/save; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null -SOURCE=${SYSCONF}/network; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null - -ROOTFS="" -PATH_CHANGES="/memory/changes" - -NAME_ROOTCOPY="rootcopy" -PATH_ROOTCOPY=$(find ${ROOTFS}/memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_ROOTCOPY}" | head -1) -[[ -n ${PATH_ROOTCOPY} ]] || PATH_ROOTCOPY="$(find ${ROOTFS}/memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" -[[ -n ${PATH_ROOTCOPY} ]] && PATH_ROOTCOPY="${PATH_ROOTCOPY%/*}/${NAME_ROOTCOPY}" || exit 0 - -NAME_MODULES="modules" -PATH_MODULES=$(find ${ROOTFS}/memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_MODULES}" | head -1) -[[ -n ${PATH_MODULES} ]] || PATH_MODULES="$(find ${ROOTFS}/memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" -[[ -n ${PATH_MODULES} ]] && PATH_MODULES="${PATH_MODULES%/*}/${NAME_MODULES}" || exit 0 - - [[ -n ${PATH_ROOTCOPY} ]] || install -dm0755 -o root -g root "${PATH_ROOTCOPY}" - if [[ ${SAVE_ALL_CACHE} == "rootcopy" && -w ${PATH_ROOTCOPY} ]]; then - cd ${PATH_CHANGES} -# find etc/ -type f -name ld.so.cache -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find etc/udev/ -type f -name hwdb.bin -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find usr/lib/gdk-pixbuf-*/*/ -type f -name loaders.cache -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find usr/lib/locale/ -type f -name locale-archive -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find usr/lib/modules/*/ -type f -name modules. -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find usr/share/applications/ -type f -name mimeinfo.cache -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find usr/share/fonts/ -type f \( -name "fonts.dir" -o -name "fonts.scale" \) -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find usr/share/glib-*/schemas/ -type f -name gschemas.compiled -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find usr/share/icons/ -type f -name icon-theme.cache -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find usr/share/mime/ -maxdepth 1 -type f -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; - find var/cache/fontconfig/ -type f -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; -# find var/cache/ldconfig/ -type f -name aux-cache -exec install -CDm600 {} ${PATH_ROOTCOPY}/{} \; -# install -dm700 ${PATH_ROOTCOPY}/var/cache/ldconfig - cp -af etc/pacman.d ${PATH_ROOTCOPY}/etc/ - cp -af etc/ssh ${PATH_ROOTCOPY}/etc/ - fi - \ No newline at end of file diff --git a/ublinux/rc.halt.pre/70-savetomodule b/ublinux/rc.halt.pre/80-savetomodule similarity index 100% rename from ublinux/rc.halt.pre/70-savetomodule rename to ublinux/rc.halt.pre/80-savetomodule diff --git a/ublinux/rc.halt.pre/85-save-cache b/ublinux/rc.halt.pre/85-save-cache new file mode 100755 index 0000000..3bf4738 --- /dev/null +++ b/ublinux/rc.halt.pre/85-save-cache @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +ENABLED=yes +[[ ${ENABLED} == "yes" ]] || exit 0 +DEBUGMODE=no + +[[ -d /usr/lib/ublinux ]] && { unset ROOTFS; unset CMD_CHROOT; } || { ROOTFS="/sysroot"; CMD_CHROOT="chroot ${ROOTFS}"; } +SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +debug_mode "$0" "$@" + +SYSCONF="${ROOTFS}${SYSCONF}" + +SOURCE=/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/save; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/network; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null + + +exec_save_all_cache(){ + if [[ -n ${SAVE_ALL_CACHE} ]]; then + PATH_CHANGES="/memory/changes" + NAME_ROOTCOPY="rootcopy" + NAME_MODULES="modules" + if [[ ${SAVE_ALL_CACHE} == "rootcopy" ]]; then + PATH_ROOTCOPY=$(find /memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_ROOTCOPY}" | head -1) + [[ -n ${PATH_ROOTCOPY} ]] || PATH_ROOTCOPY="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" + [[ -n ${PATH_ROOTCOPY} ]] && PATH_ROOTCOPY="${PATH_ROOTCOPY%/*}/${NAME_ROOTCOPY}" || return 0 + [[ -n ${PATH_ROOTCOPY} ]] || install -dm0755 -o root -g root "${PATH_ROOTCOPY}" + [[ -w ${PATH_ROOTCOPY} ]] || return 1 + + cd ${PATH_CHANGES} +# find etc/ -type f -name ld.so.cache -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find etc/udev/ -type f -name hwdb.bin -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find usr/lib/gdk-pixbuf-*/*/ -type f -name loaders.cache -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find usr/lib/locale/ -type f -name locale-archive -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find usr/lib/modules/*/ -type f -name modules. -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find usr/share/applications/ -type f -name mimeinfo.cache -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find usr/share/fonts/ -type f \( -name "fonts.dir" -o -name "fonts.scale" \) -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find usr/share/glib-*/schemas/ -type f -name gschemas.compiled -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find usr/share/icons/ -type f -name icon-theme.cache -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find usr/share/mime/ -maxdepth 1 -type f -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; + find var/cache/fontconfig/ -type f -exec install -CDm644 {} ${PATH_ROOTCOPY}/{} \; +# find var/cache/ldconfig/ -type f -name aux-cache -exec install -CDm600 {} ${PATH_ROOTCOPY}/{} \; +# install -dm700 ${PATH_ROOTCOPY}/var/cache/ldconfig + cp -af etc/pacman.d ${PATH_ROOTCOPY}/etc/ + cp -af etc/ssh ${PATH_ROOTCOPY}/etc/ + elif [[ ${SAVE_ALL_CACHE} == "modules" ]]; then + PATH_MODULES=$(find /memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_MODULES}" | head -1) + [[ -n ${PATH_MODULES} ]] || PATH_MODULES="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" + [[ -n ${PATH_MODULES} ]] && PATH_MODULES="${PATH_MODULES%/*}/${NAME_MODULES}" || return 0 + [[ -n ${PATH_MODULES} ]] || install -dm0755 -o root -g root "${PATH_MODULES}" + [[ -w ${PATH_MODULES} ]] || return 1 +# TODO + fi + fi +} + +################ +##### MAIN ##### +################ + + [[ ${SYSTEMBOOT_STATEMODE} == "changes" ]] && exit 0 + exec_save_all_cache $@ diff --git a/ublinux/rc.halt.pre/76-save-rootcopy b/ublinux/rc.halt.pre/86-save-rootcopy similarity index 86% rename from ublinux/rc.halt.pre/76-save-rootcopy rename to ublinux/rc.halt.pre/86-save-rootcopy index d387f4b..20879e0 100755 --- a/ublinux/rc.halt.pre/76-save-rootcopy +++ b/ublinux/rc.halt.pre/86-save-rootcopy @@ -20,8 +20,8 @@ NAME_ROOTCOPY="rootcopy" exec_save_rootcopy(){ ## При перезагрузке/выключении, сохранить/перезаписать указанные каталоги/файлы , кроме в /ublinux-data/rootcopy/ if [[ -n ${SAVE_ROOTCOPY_INCLUDE} || -n ${SAVE_ROOTCOPY_CHANGES} ]]; then - PATH_ROOTCOPY=$(find ${ROOTFS}/memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_ROOTCOPY}" | head -1) - [[ -n ${PATH_ROOTCOPY} ]] || PATH_ROOTCOPY="$(find ${ROOTFS}/memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" + PATH_ROOTCOPY=$(find /memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_ROOTCOPY}" | head -1) + [[ -n ${PATH_ROOTCOPY} ]] || PATH_ROOTCOPY="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" [[ -n ${PATH_ROOTCOPY} ]] && PATH_ROOTCOPY="${PATH_ROOTCOPY%/*}/${NAME_ROOTCOPY}" || exit 0 [[ -e ${PATH_ROOTCOPY} ]] || install -dm0755 -o root -g root "${PATH_ROOTCOPY}" @@ -48,8 +48,8 @@ exec_save_rootcopy(){ } exec_save_sssd_rootcopy(){ - PATH_ROOTCOPY=$(find ${ROOTFS}/memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_ROOTCOPY}" | head -1) - [[ -n ${PATH_ROOTCOPY} ]] || PATH_ROOTCOPY="$(find ${ROOTFS}/memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" + PATH_ROOTCOPY=$(find /memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_ROOTCOPY}" | head -1) + [[ -n ${PATH_ROOTCOPY} ]] || PATH_ROOTCOPY="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" [[ -n ${PATH_ROOTCOPY} ]] && PATH_ROOTCOPY="${PATH_ROOTCOPY%/*}/${NAME_ROOTCOPY}" || exit 0 # Save DOMAIN settings diff --git a/ublinux/rc.halt.pre/89-save-clean b/ublinux/rc.halt.pre/89-save-clean new file mode 100755 index 0000000..65583d5 --- /dev/null +++ b/ublinux/rc.halt.pre/89-save-clean @@ -0,0 +1,93 @@ +#!/usr/bin/env bash + +ENABLED=yes +[[ ${ENABLED} == "yes" ]] || exit 0 +DEBUGMODE=no + +[[ -d /usr/lib/ublinux ]] && { ROOTFS= ; CMD_CHROOT= ; } || { [[ -d /sysroot ]] && ROOTFS="/sysroot" || ROOTFS="."; CMD_CHROOT="chroot ${ROOTFS}"; } +SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/default; [[ -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}/save; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null + +## Удалить указанные изменения, после очистки параметр удаляется +## SAVE_CLEAN=all|changes,rootcopy,homes +## all # Удалить все изменения из /ublinux-data/changes/ /ublinux-data/rootcopy/ /ublinux-data/homes/ +## changes # Удалить только системные изменения /ublinux-data/changes/ +## rootcopy # Удалить только /ublinux-data/rootcopy/ +## homes # Удалить только /ublinux-data/homes/ +## SAVE_CLEAN=changes,rootcopy +exec_save_clean(){ + find_path_changes(){ + PATH_CHANGES=$(find /memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_CHANGES}" | head -1) + [[ -n ${PATH_CHANGES} ]] || PATH_CHANGES="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" + [[ -n ${PATH_CHANGES} ]] && PATH_CHANGES="${PATH_CHANGES%/*}/${NAME_CHANGES}" || return 1 + } + find_path_rootcopy(){ + PATH_ROOTCOPY=$(find /memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_ROOTCOPY}" | head -1) + [[ -n ${PATH_ROOTCOPY} ]] || PATH_ROOTCOPY="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" + [[ -n ${PATH_ROOTCOPY} ]] && PATH_ROOTCOPY="${PATH_ROOTCOPY%/*}/${NAME_ROOTCOPY}" || return 1 + } + find_path_homes(){ + PATH_HOMES=$(find /memory/layer-base/*/ -maxdepth 1 -type d -name "${NAME_HOMES}" | head -1) + [[ -n ${PATH_HOMES} ]] || PATH_HOMES="$(find /memory/layer-base/*/ -maxdepth 1 -type f -name "ublinux-data*.sgn" | head -1)" + [[ -n ${PATH_HOMES} ]] && PATH_HOMES="${PATH_HOMES%/*}/${NAME_HOMES}" || return 1 + } + check_clean_changes(){ + [[ -n $(ls -A ${PATH_CHANGES} 2>/dev/null) ]] && NEED_REBOOT=yes || return 1 + } + check_clean_rootcopy(){ + [[ -n $(ls -A ${PATH_ROOTCOPY} 2>/dev/null) ]] && NEED_REBOOT=yes || return 1 + } + check_clean_homes(){ + local STATUS= + find ${PATH_HOMES} -maxdepth 2 -type d -name ".config" | while read -r PATH_USER_HOME; do + [[ -n $(ls -A ${PATH_USER_HOME%/*} 2>/dev/null) ]] && NEED_REBOOT=yes && STATUS=1 + done + [[ -z ${STATUS} ]] || return 1 + } + clean_changes(){ + find ${PATH_CHANGES}/{..?*,.[!.]*,*} -delete 2>/dev/null + } + clean_rootcopy(){ + find ${PATH_ROOTCOPY}/{..?*,.[!.]*,*} -delete 2>/dev/null + } + clean_homes(){ + find ${PATH_HOMES} -maxdepth 2 -type d -name ".config" | while read -r PATH_USER_HOME; do + find ${PATH_USER_HOME%/*} -delete 2>/dev/null + done + } + + # Если задан парметр, то использовать как значение + [[ -n $@ ]] && SAVE_CLEAN=$@ + if [[ -n ${SAVE_CLEAN} ]]; then + local NAME_CHANGES="changes" + local NAME_ROOTCOPY="rootcopy" + local NAME_HOMES="homes" + local NEED_REBOOT= + if [[ ${SAVE_CLEAN} =~ 'all' ]]; then + find_path_changes && check_clean_changes && clean_changes + find_path_rootcopy && check_clean_rootcopy && clean_rootcopy + find_path_homes && check_clean_homes && clean_homes + else + [[ ${SAVE_CLEAN} =~ 'changes' ]] && find_path_changes && check_clean_changes && clean_changes + [[ ${SAVE_CLEAN} =~ 'rootcopy' ]] && find_path_rootcopy && check_clean_rootcopy && clean_rootcopy + [[ ${SAVE_CLEAN} =~ 'homes' ]] && find_path_homes && check_clean_homes && clean_homes + fi + ${CMD_CHROOT} /usr/bin/ubconfig --quiet --target global remove [save] SAVE_CLEAN + sync; sync; sync; echo 3 > /proc/sys/vm/drop_caches + [[ -n ${NEED_REBOOT} ]] || return 1 + fi +} + +################ +##### MAIN ##### +################ + + # Если файл подключен как ресурс с функциями, то выйти + return 0 2>/dev/null && return 0 + + exec_save_clean $@ diff --git a/ublinux/rc.local.d/43-repository b/ublinux/rc.local.d/43-repository index e413693..e3b4b71 100755 --- a/ublinux/rc.local.d/43-repository +++ b/ublinux/rc.local.d/43-repository @@ -408,7 +408,7 @@ exec_04_repopublic_cache(){ disable_pacoloco(){ systemctl --quiet disable pacoloco.service systemctl --quiet stop pacoloco.service - find ${ROOTFS}/memory/bundles -maxdepth 3 -path "*/etc/*" -type f -name "pacoloco.yaml" -exec cp -af {} "/etc/" \; -quit + find /memory/bundles -maxdepth 3 -path "*/etc/*" -type f -name "pacoloco.yaml" -exec cp -af {} "/etc/" \; -quit } [[ $1 == @("set="|"set+="|"set++="|"set-="|"set--="|"remove") ]] && COMMAND=$1 && shift [[ -n ${COMMAND} ]] || COMMAND="set=" @@ -563,7 +563,7 @@ live_autoupdate(){ [[ ${SAVE_REPOSITORY_ARRAY} == @(""|"(null)") ]] || ubconfig --quiet --nocolor --target system set [update] ${SAVE_REPOSITORY_ARRAY} } if [[ ${AUTOUPDATE[0]} == @("enable"|"yes") ]]; then - FILE_LOG_AUTOUPDATE="/var/log/ubconfig_autoupdate.log" + FILE_LOG_AUTOUPDATE="/var/log/ubconfig-autoupdate.log" exec &> >(tee -a "${FILE_LOG_AUTOUPDATE}") echo date diff --git a/ublinux/rc.preinit/90-save-clean b/ublinux/rc.preinit/90-save-clean new file mode 100755 index 0000000..2140b3d --- /dev/null +++ b/ublinux/rc.preinit/90-save-clean @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +ENABLED=yes +[[ ${ENABLED} == "yes" ]] || exit 0 +DEBUGMODE=no + +[[ -d /usr/lib/ublinux ]] && { ROOTFS= ; CMD_CHROOT= ; } || { [[ -d /sysroot ]] && ROOTFS="/sysroot" || ROOTFS="."; CMD_CHROOT="chroot ${ROOTFS}"; } +SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 +SOURCE=${ROOTFS}/usr/lib/ublinux/default; [[ -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}/save; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null + +## Удалить указанные изменения, после очистки параметр удаляется SAVE_CLEAN= +## Основная очиста выполняется при завершении работы /rc.halt.pre/*-save-clean, но если парметр не удалился или была задана опция в GRUB, то повторно выполнить очистку +exec_save_clean(){ + CMDLINE_SAVE_CLEAN=$(cmdline_value save_clean) + [[ -n ${CMDLINE_SAVE_CLEAN} ]] && SAVE_CLEAN=${CMDLINE_SAVE_CLEAN} + if [[ -n ${SAVE_CLEAN} ]]; then + FILE_EXEC=$(find ${ROOTFS}/usr/lib/ublinux/rc.halt.pre -iname "*-save-clean") + [[ -n ${FILE_EXEC} ]] && ${FILE_EXEC} ${SAVE_CLEAN} && poweroff --force --reboot + fi +} + +################ +##### MAIN ##### +################ + + exec_save_clean \ No newline at end of file diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index 3cc5ab0..85e1a6d 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -35,8 +35,12 @@ # Поддерживаемые параметры Grub # services_enable=item_1,item_2,...,item_n # Перечень сервисов/юнитов которые должны быть запущены, разделитель (,) или (;). Пример: services_enable=sbm,nmb,cockpit.socket # services_disable=item_1,item_2,...,item_n # Перечень сервисов/юнитов которые должны быть выключены, разделитель (,) или (;). Пример: services_disable=sbm,nmb,cockpit.socket -# useradd=;...; # Перечень пользователей, см. USERADD. -# Пример: useradd=admin:::::pass;admin2:Administrator-2:1010:admin2:wheel,users:pass2 +# useradd=;...; +# # Перечень пользователей, см. USERADD= +# # Пример: useradd=admin:::::pass;admin2:Administrator-2:1010:admin2:wheel,users:pass2 +# save_clean=all|changes,rootcopy,homes # Очистить изменения пользователя, см. SAVE_CLEAN= +# +# # ################################################################################ @@ -690,7 +694,6 @@ GRUB_CMDLINE_LINUX="modprobe.blacklist=nouveau" ## GRUB_ADDON_FILE= ## # Файл загрузки addon - [/etc/ublinux/server] ## Настройка сервера ################################################################################ @@ -796,13 +799,12 @@ GRUB_CMDLINE_LINUX="modprobe.blacklist=nouveau" #SAVE_MODULE_INCLUDE="/etc/pacman.d/gnupg,/etc/NetworkManager/system-connections" #SAVE_MODULE_EXCLUDE="/etc/ublinux" -## TODO -## Удалить указанные изменения, после успешной очистки параметр удаляется -## SAVE_CLEAN=all|changes,rootcopy,home -## all # Удалить все изменения из /changes/ /rootcopy/ /home/ -## changes # Удалить только системные изменения /changes/ -## rootcopy # Удалить только изменения /rootcopy/ -## home # Удалить только изменения /home/ +## Удалить указанные изменения, после очистки параметр удаляется +## SAVE_CLEAN=all|changes,rootcopy,homes +## all # Удалить все изменения из /ublinux-data/changes/ /ublinux-data/rootcopy/ /ublinux-data/homes/ +## changes # Удалить только системные изменения /ublinux-data/changes/ +## rootcopy # Удалить только /ublinux-data/rootcopy/ +## homes # Удалить только /ublinux-data/homes/ ## SAVE_CLEAN=changes,rootcopy [/etc/ublinux/network]