master v2.133
Dmitry Razumov 4 months ago
parent f5f5f2ee4e
commit 41aaad8505
Signed by: asmeron
GPG Key ID: 50BC1DB583B79706

@ -1,7 +1,7 @@
# Language translations for ublinux-init package and 02-journald-notify script.
# Language translations for ublinux-init package and '02-journald-notify' script.
# Copyright (C) 2025, UBTech LLC
# This file is distributed under the same license as the ublinux-init package.
# UBLinux Team <support@ublinux.com>, 2025
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy
msgid ""
@ -10,8 +10,8 @@ msgstr ""
"Report-Msgid-Bugs-To: support@ublinux.com\n"
"POT-Creation-Date: 2025-01-01 00:00+0600\n"
"PO-Revision-Date: 2025-01-01 00:00+0600\n"
"Last-Translator: UBLinux Team <support@ublinux.com>\n"
"Language-Team: UBLinux Team <support@ublinux.com>\n"
"Last-Translator: UBLinux <support@ublinux.com>\n"
"Language-Team: UBLinux <support@ublinux.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"

@ -1,17 +1,17 @@
# Russian translations for ublinux-init package and 02-journald-notify script.
# Russian translations for ublinux-init package and '02-journald-notify' script.
# Copyright (C) 2025, UBTech LLC
# This file is distributed under the same license as the ublinux-init package.
# UBLinux Team <support@ublinux.com>, 2025
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ublinux-init-02-journald-notify 1.0\n"
"Report-Msgid-Bugs-To: support@ublinux.com\n"
"POT-Creation-Date: 2025-04-25 15:27+0600\n"
"PO-Revision-Date: 2025-02-22 23:28+0600\n"
"POT-Creation-Date: 2025-01-01 00:00+0600\n"
"PO-Revision-Date: 2025-01-01 00:00+0600\n"
"Last-Translator: ublinux <support@ublinux.com>\n"
"Language-Team: Russian - UBLinux Team <support@ublinux.com>\n"
"Language-Team: Russian - UBLinux <support@ublinux.com>\n"
"Language: Russian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"

@ -0,0 +1,22 @@
# Language translations for ublinux-init package and '10-accounts' script.
# Copyright (C) 2025, UBTech LLC
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ublinux-init-10-accounts 1.0\n"
"Report-Msgid-Bugs-To: support@ublinux.com\n"
"POT-Creation-Date: 2025-01-01 00:00+0600\n"
"PO-Revision-Date: 2025-01-01 00:00+0600\n"
"Last-Translator: UBLinux <support@ublinux.com>\n"
"Language-Team: UBLinux <support@ublinux.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Administrator"
msgstr ""

@ -0,0 +1,22 @@
# Russian translations for ublinux-init package and '10-accounts' script.
# Copyright (C) 2025, UBTech LLC
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ublinux-init-10-accounts 1.0\n"
"Report-Msgid-Bugs-To: support@ublinux.com\n"
"POT-Creation-Date: 2025-01-01 00:00+0600\n"
"PO-Revision-Date: 2025-01-01 00:00+0600\n"
"Last-Translator: ublinux <support@ublinux.com>\n"
"Language-Team: Russian - UBLinux <support@ublinux.com>\n"
"Language: Russian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Administrator"
msgstr "Администратор"

@ -1,6 +1,6 @@
# Russian translations for ublinux-init package and EULA.
# Russian translations for 'ublinux-init' package and EULA.
# Copyright (C) 2025, UBSoft, Inc
# This file is distributed under the same license as the ublinux-init package.
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy

@ -1,6 +1,6 @@
# Russian translations for ublinux-init package and EULA.
# Russian translations for 'ublinux-init' package and EULA.
# Copyright (C) 2025, UBTech, Inc
# This file is distributed under the same license as the ublinux-init package.
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy

@ -1,6 +1,6 @@
# Language translations for ublinux-init package and grub-functions script.
# Language translations for ublinux-init package and 'grub-functions' script.
# Copyright (C) 2025, UBTech LLC
# This file is distributed under the same license as the ublinux-init package.
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy

@ -1,6 +1,6 @@
# Russian translations for ublinux-init package and grub-functions script.
# Russian translations for ublinux-init package and 'grub-functions' script.
# Copyright (C) 2025, UBTech LLC
# This file is distributed under the same license as the ublinux-init package.
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy

@ -1,6 +1,6 @@
# Language translations for ublinux-init package and LICENSE.
# Language translations for 'ublinux-init' package and LICENSE.
# Copyright (C) 2025, UBSoft, Inc
# This file is distributed under the same license as the ublinux-init package.
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy

@ -1,6 +1,6 @@
# Russian translations for ublinux-init package and LICENSE.
# Russian translations for 'ublinux-init' package and LICENSE.
# Copyright (C) 2025, UBSoft, Inc
# This file is distributed under the same license as the ublinux-init package.
# This file is distributed under the same license as the 'ublinux-init' package.
# UBLinux <support@ublinux.com>, 2025
#
#, fuzzy

@ -1069,7 +1069,7 @@ ubconfig_exec_system(){
return 0 2>/dev/null && return 0
[[ -d ${SSC_EXTRACT_DIR} ]] && rm -rf "${SSC_EXTRACT_DIR}"
[[ -n ${SSC_ARGV0} ]] && { [[ -f /usr/bin/bash && && /usr/bin/bash --version | grep -q ^"GNU bash" || exit 1; }
[[ -n ${SSC_ARGV0} ]] && { [[ -f /usr/bin/bash ]] && /usr/bin/bash --version | grep -q ^"GNU bash" || exit 1; }
[[ -z ${SELF_FILE} ]] && [[ -n ${SSC_ARGV0} ]] && SELF_FILE=${SSC_ARGV0} && SELF_NAME=${SSC_ARGV0##*/} && SELF_PATH=${SSC_ARGV0%/*} || { SELF_FILE=${0} && SELF_NAME=${0##*/} && SELF_PATH=${0%/*}; }
[[ ! -f /init ]] && { ROOTFS= ; CMD_CHROOT= ; } || { [[ -d /sysroot ]] && ROOTFS="/sysroot" || ROOTFS="."; CMD_CHROOT="chroot ${ROOTFS}"; }
SOURCE=${ROOTFS}/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0

@ -12,6 +12,7 @@ ENABLED=yes
SOURCE=/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
NAME_EXEC=${0##*/}
[[ -n ${SSC_ARGV0} ]] && SELF_FILE=${SSC_ARGV0} && SELF_NAME=${SSC_ARGV0##*/} && SELF_PATH=${SSC_ARGV0%/*} || { SELF_FILE=${0} && SELF_NAME=${0##*/} && SELF_PATH=${0%/*}; }
NAME_EXEC=${SELF_NAME}
which ${NAME_EXEC} >/dev/null 2>&1 || exit 0
[[ ${START_PLANK} == "yes" ]] && ${NAME_EXEC} &

@ -32,18 +32,18 @@ control_grub_var_cfg(){
local STR_SET_VALUE=${2}
local STR_EXPORT=${3}
if [[ -n ${STR_SET_VALUE} ]]; then
grep -q "${STR_EXPORT}" ${FILE_GRUB_VAR_USER} 2>/dev/null || echo -e "${STR_EXPORT}" >> ${FILE_GRUB_VAR_USER}
if ! grep -q "^\s*$(ere_quote_grep "${STR_SET}${STR_SET_VALUE}")\s*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
local QUOTA
grep -q "^[[:blank:]]*${STR_EXPORT}" ${FILE_GRUB_VAR_USER} 2>/dev/null || echo -e "${STR_EXPORT}" >> ${FILE_GRUB_VAR_USER}
if ! grep -q "^[[:blank:]]*$(ere_quote_grep "${STR_SET}${STR_SET_VALUE}")[[:blank:]]*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
local QUOTA=
[[ ${STR_SET_VALUE} =~ " " ]] && QUOTA="\""
if grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed -E "s/^\s*(${STR_SET}).*/\1$(ere_quote_sed "${QUOTA}${STR_SET_VALUE}${QUOTA}")/" -i ${FILE_GRUB_VAR_USER}
if grep -q "^[[:blank:]]*${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed -E "s/^[[:blank:]]*(${STR_SET}).*/\1$(ere_quote_sed "${QUOTA}${STR_SET_VALUE}${QUOTA}")/" -i ${FILE_GRUB_VAR_USER}
else
sed -E "/${STR_EXPORT}/i$(ere_quote_sed "${STR_SET}${QUOTA}${STR_SET_VALUE}${QUOTA}")" -i ${FILE_GRUB_VAR_USER}
sed -E "/^[[:blank:]]*${STR_EXPORT}/i$(ere_quote_sed "${STR_SET}${QUOTA}${STR_SET_VALUE}${QUOTA}")" -i ${FILE_GRUB_VAR_USER}
fi
fi
elif grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed "/^\s*${STR_SET}.*/d; /^\s*${STR_EXPORT}\s*$/d" -i ${FILE_GRUB_VAR_USER}
elif grep -q "^[[:blank:]]*${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed "/^[[:blank:]]*${STR_SET}.*/d; /^[[:blank:]]*${STR_EXPORT}[[:blank:]]*$/d" -i ${FILE_GRUB_VAR_USER}
fi
}
exec_grub_lang(){
@ -91,9 +91,9 @@ exec_grub_password(){
STR_SET_VALUE=$(echo -e "${STR_SET_VALUE}\n${STR_SET_VALUE}" | grub-mkpasswd-pbkdf2 | awk '/grub.pbkdf/{print$NF}')
ubconfig --noexecute set boot GRUB_PASSWORD[${NAME_USER}]=${STR_SET_VALUE}
fi
if ! grep -q "^\s*${STR_SET}${STR_SET_VALUE}$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
if ! grep -q "^[[:blank:]]*${STR_SET}${STR_SET_VALUE}$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
if grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed -E "s/^\s*(${STR_SET}).*/\1${STR_SET_VALUE}/" -i ${FILE_GRUB_VAR_USER}
sed -E "s/^[[:blank:]]*(${STR_SET}).*/\1${STR_SET_VALUE}/" -i ${FILE_GRUB_VAR_USER}
else
echo "${STR_SET}${STR_SET_VALUE}" >> ${FILE_GRUB_VAR_USER}
fi
@ -101,10 +101,10 @@ exec_grub_password(){
done
# Проверка по файлу ${FILE_GRUB_VAR_USER}, если пароль на пользователя присутствует, но его нет в конфигурации, то удалить из ${FILE_GRUB_VAR_USER}
while read -r NAME_USER; do
[[ -n ${GRUB_PASSWORD[${NAME_USER}]} ]] || sed "/^\s*password_pbkdf2 ${NAME_USER}.*/d" -i ${FILE_GRUB_VAR_USER}
done < <(sed -En "s/^\s*password_pbkdf2 (.*) .*/\1/p" ${FILE_GRUB_VAR_USER})
elif grep -q "^\s*password_pbkdf2" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed "/^\s*password_pbkdf2.*/d" -i ${FILE_GRUB_VAR_USER}
[[ -n ${GRUB_PASSWORD[${NAME_USER}]} ]] || sed "/^[[:blank:]]*password_pbkdf2 ${NAME_USER}.*/d" -i ${FILE_GRUB_VAR_USER}
done < <(sed -En "s/^[[:blank:]]*password_pbkdf2 (.*) .*/\1/p" ${FILE_GRUB_VAR_USER})
elif grep -q "^[[:blank:]]*password_pbkdf2" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed "/^[[:blank:]]*password_pbkdf2.*/d" -i ${FILE_GRUB_VAR_USER}
fi
}
exec_grub_boot_silent(){
@ -117,20 +117,20 @@ exec_grub_terminal_input(){
[[ -n $@ ]] && STR_SET_VALUE="$@" || STR_SET_VALUE="${GRUB_TERMINAL_INPUT}"
STR_SET="terminal_input "
if [[ -n ${STR_SET_VALUE} ]]; then
if ! grep -q "^\s*${STR_SET}${STR_SET_VALUE}\s*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
if ! grep -q "^[[:blank:]]*${STR_SET}${STR_SET_VALUE}[[:blank:]]*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
if grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed -E "s/^\s*(${STR_SET}).*/\1${STR_SET_VALUE}/" -i ${FILE_GRUB_VAR_USER}
sed -E "s/^[[:blank:]]*(${STR_SET}).*/\1${STR_SET_VALUE}/" -i ${FILE_GRUB_VAR_USER}
else
echo "${STR_SET}${STR_SET_VALUE}" >> ${FILE_GRUB_VAR_USER}
fi
if [[ ${STR_SET_VALUE} =~ "serial" ]]; then
grep -q "^\s*serial\s*$" ${FILE_GRUB_VAR_USER} 2>/dev/null || sed "/${STR_SET}/iserial" -i ${FILE_GRUB_VAR_USER}
grep -q "^[[:blank:]]*serial[[:blank:]]*$" ${FILE_GRUB_VAR_USER} 2>/dev/null || sed "/${STR_SET}/iserial" -i ${FILE_GRUB_VAR_USER}
else
grep -q "^\s*serial\s*$" ${FILE_GRUB_VAR_USER} 2>/dev/null && sed "/^serial$/d" -i ${FILE_GRUB_VAR_USER}
grep -q "^[[:blank:]]*serial[[:blank:]]*$" ${FILE_GRUB_VAR_USER} 2>/dev/null && sed "/^serial$/d" -i ${FILE_GRUB_VAR_USER}
fi
fi
elif grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed "/^\s*${STR_SET}.*/d; /^\s*serial\s*$/d" -i ${FILE_GRUB_VAR_USER}
sed "/^[[:blank:]]*${STR_SET}.*/d; /^[[:blank:]]*serial[[:blank:]]*$/d" -i ${FILE_GRUB_VAR_USER}
fi
}
exec_grub_terminal_output(){
@ -138,15 +138,15 @@ exec_grub_terminal_output(){
[[ -n $@ ]] && STR_SET_VALUE="$@" || STR_SET_VALUE="${GRUB_TERMINAL_OUTPUT}"
STR_SET="terminal_output "
if [[ -n ${STR_SET_VALUE} ]]; then
if ! grep -q "^\s*${STR_SET}${STR_SET_VALUE}\s*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
if ! grep -q "^[[:blank:]]*${STR_SET}${STR_SET_VALUE}[[:blank:]]*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
if grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed -E "s/^\s*(${STR_SET}).*/\1${STR_SET_VALUE}/" -i ${FILE_GRUB_VAR_USER}
sed -E "s/^[[:blank:]]*(${STR_SET}).*/\1${STR_SET_VALUE}/" -i ${FILE_GRUB_VAR_USER}
else
echo "${STR_SET}${STR_SET_VALUE}" >> ${FILE_GRUB_VAR_USER}
fi
fi
elif grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed "/^\s*${STR_SET}.*/d" -i ${FILE_GRUB_VAR_USER}
sed "/^[[:blank:]]*${STR_SET}.*/d" -i ${FILE_GRUB_VAR_USER}
fi
}
exec_grub_play(){
@ -154,15 +154,15 @@ exec_grub_play(){
[[ -n $@ ]] && STR_SET_VALUE="$@" || STR_SET_VALUE="${GRUB_PLAY}"
STR_SET="play "
if [[ -n ${STR_SET_VALUE} ]]; then
if ! grep -q "^\s*${STR_SET}${STR_SET_VALUE}\s*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
if ! grep -q "^[[:blank:]]*${STR_SET}${STR_SET_VALUE}[[:blank:]]*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
if grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed -E "s/^\s*(${STR_SET}).*/\1${STR_SET_VALUE}/" -i ${FILE_GRUB_VAR_USER}
sed -E "s/^[[:blank:]]*(${STR_SET}).*/\1${STR_SET_VALUE}/" -i ${FILE_GRUB_VAR_USER}
else
echo "${STR_SET}${STR_SET_VALUE}" >> ${FILE_GRUB_VAR_USER}
fi
fi
elif grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed "/^\s*${STR_SET}.*/d" -i ${FILE_GRUB_VAR_USER}
sed "/^[[:blank:]]*${STR_SET}.*/d" -i ${FILE_GRUB_VAR_USER}
fi
}
exec_grub_cmdline_linux(){

@ -22,9 +22,30 @@ exec_01_init_pacman_gpg(){
}
exec_02_install_pkg_tar(){
find /memory/layer-base/*/install -maxdepth 1 -type f -name "*.pkg.tar.*" -exec pacman -U --noprogressbar --noconfirm {} + 2>/dev/null
#find /memory/layer-base/*/install -maxdepth 1 -type f -name "*.pkg.tar.*" -exec pacman -U --noprogressbar --noconfirm {} + 2>/dev/null
local FIND_PATH="/memory/layer-base/*/install"
local FIND_PATH_ONCE="/memory/layer-base/*/install/once"
local FIND_PKG_TAR=$(find ${FIND_PATH} ${FIND_PATH_ONCE} -maxdepth 1 -type f -name "*.pkg.tar.*" -print 2>/dev/null)
if [[ -n ${FIND_PKG_TAR} ]]; then
pacsync --updated
pacinstall --yolo --file ${FIND_PKG_TAR}
fi
}
exec_03_remove_once_pkg_tar(){
local FIND_PATH="/memory/layer-base/*/install/once"
local PKG_TAR_REMOVE=
while IFS= read -ru3 -d '' SELECT_PKG_TAR; do
[[ ${SELECT_PKG_TAR} =~ .*\/(.+)-([^-]*)-([^-]*)-(i686|x86_64|any)\.pkg\.tar\.(gz|xz|zst)$ ]] && paccheck --quiet --files ${BASH_REMATCH[1]} && PKG_TAR_REMOVE=yes || PKG_TAR_REMOVE=
if [[ -n ${PKG_TAR_REMOVE} ]]; then
rm -fv ${SELECT_PKG_TAR}
else
echo "WARNING: Package file '${SELECT_PKG_TAR}' not remove"
fi
done 3< <(find ${FIND_PATH} -maxdepth 1 -type f -name "*.pkg.tar.*" -print0 2>/dev/null)
}
################
##### MAIN #####
################
@ -32,5 +53,6 @@ exec_02_install_pkg_tar(){
# Если файл подключен как ресурс с функциями, то выйти
return 0 2>/dev/null && return 0
exec_01_init_pacman_gpg $@ &
exec_02_install_pkg_tar $@ &
exec_01_init_pacman_gpg $@
exec_02_install_pkg_tar $@
exec_03_remove_once_pkg_tar $@

@ -149,7 +149,7 @@ exec_01_journald_notify(){
[[ ${TYPE} == "--facility" ]] && { [[ ${TYPE_VALUE,,} == @(0|kern|1|user|2|mail|3|daemon|4|auth|5|syslog|6|lpr|7|news|8|uucp|9|10|authpriv|11|ftp|12|13|14|15|cron|16|local0|17|local1|18|local2|19|local3|20|local4|21|local5|22|local6|23|local7) ]] || continue; }
[[ -n ${PRIORITY} && ${PRIORITY} == @(0|emerg|1|alert|2|crit|3|err|4|warning|5|notice|6|info|7|debug) ]] && PRIORITY="--priority ${PRIORITY}"
FILTER=${JOURNALD_NOTIFY[${SELECT_JOURNALD_NOTIFY}]}
pkill -f "/usr/lib/ublinux/rc.pamsession.d/02-journald-notify ubconfig_journald_notify_live ${TYPE} ${TYPE_VALUE} ${PRIORITY} ${OPTIONS} ${FILTER}"
pkill -f "ubconfig_journald_notify_live ${TYPE} ${TYPE_VALUE} ${PRIORITY} ${OPTIONS} ${FILTER}"
setsid -f /usr/lib/ublinux/rc.pamsession.d/02-journald-notify ubconfig_journald_notify_live "${TYPE}" "${TYPE_VALUE}" "${PRIORITY}" "${OPTIONS}" "${FILTER}"
if [[ ${FILTER} =~ (^|,)"ip@conflict"(,|$) ]]; then
# Включить таймаут обнаружения конфликтов IP на всех сетевых интерфейсах
@ -175,7 +175,7 @@ exec_01_journald_notify(){
[[ ${TYPE} == "--facility" ]] && { [[ ${TYPE_VALUE,,} == @(0|kern|1|user|2|mail|3|daemon|4|auth|5|syslog|6|lpr|7|news|8|uucp|9|10|authpriv|11|ftp|12|13|14|15|cron|16|local0|17|local1|18|local2|19|local3|20|local4|21|local5|22|local6|23|local7) ]] || continue; }
[[ -n ${PRIORITY} && ${PRIORITY} == @(0|emerg|1|alert|2|crit|3|err|4|warning|5|notice|6|info|7|debug) ]] && PRIORITY="--priority ${PRIORITY}"
FILTER=${JOURNALD_NOTIFY[${SELECT_JOURNALD_NOTIFY}]}
pkill -f "/usr/lib/ublinux/rc.pamsession.d/02-journald-notify ubconfig_journald_notify_live ${TYPE} ${TYPE_VALUE} ${PRIORITY} ${OPTIONS} ${FILTER}"
pkill -f "ubconfig_journald_notify_live ${TYPE} ${TYPE_VALUE} ${PRIORITY} ${OPTIONS} ${FILTER}"
if [[ ${FILTER} =~ (^|,)"ip@conflict"(,|$) ]]; then
# Выключить таймаут обнаружения конфликтов IP на всех сетевых интерфейсах
[[ ${NETWORK[all@connmod]} =~ "ipv4.dad-timeout -1" ]] && ubconfig --quiet --target system set [network] NETWORK[all@connmod]-="ipv4.dad-timeout -1"
@ -188,7 +188,7 @@ ubconfig_journald_notify_live(){
local TYPE=$1 TYPE_VALUE=$2 PRIORITY=$3 OPTIONS=$4 FILTER=$5
NOTIFY_ICON="--icon dialog-information --urgency=normal"
init(){
export TEXTDOMAIN="ublinux-init-${0##*/}"
export TEXTDOMAIN="ublinux-init-${SELF_NAME}"
export TEXTDOMAINDIR="${PATH_ROOT}/usr/share/locale"
}
i18n(){
@ -265,6 +265,7 @@ ubconfig_journald_notify_live(){
# Если файл подключен как ресурс с функциями, то выйти
return 0 2>/dev/null && return 0
[[ -n ${SSC_ARGV0} ]] && SELF_FILE=${SSC_ARGV0} && SELF_NAME=${SSC_ARGV0##*/} && SELF_PATH=${SSC_ARGV0%/*} || { SELF_FILE=${0} && SELF_NAME=${0##*/} && SELF_PATH=${0%/*}; }
if [[ -z $@ ]]; then
while read -r FUNCTION; do
$"${FUNCTION##* }"

@ -44,6 +44,16 @@ shopt -s extglob
DEFAULT_HOME_USER="/home"
NAME_REGEX="^[a-z_][-a-z0-9_]*\$"
init(){
export TEXTDOMAIN="ublinux-init-${SELF_NAME}"
export TEXTDOMAINDIR="${PATH_ROOT}/usr/share/locale"
}
i18n(){
local KEY="$1"
shift
printf "$(gettext -s "${KEY}")" "$@"
}
#####################################################################################
###
### Функции управления пользователями и группами с помощью тектовых процессоров ###
@ -709,8 +719,20 @@ create_home(){
[[ -n ${SELECT_USERNAME} && -n ${SELECT_GROUP} && -n ${SELECT_HOME} ]] || return 1
if [[ -d "${ROOTFS}${SELECT_HOME}" ]]; then
if [[ -n ${SELECT_FORCESKEL} ]]; then
cp -Taf ${ROOTFS}/etc/skel "${ROOTFS}${SELECT_HOME}"
[[ -e "${ROOTFS}${SELECT_HOME}/.cache" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.cache"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/autostart" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/autostart"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/dconf" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/dconf"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/gtk-3.0" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/gtk-3.0"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/gtk-4.0" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/gtk-4.0"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/KDE" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/KDE"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/kde.org" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/kde.org"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/kdedefaults" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/kdedefaults"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/menus" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/menus"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/session" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/session"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/xfce4" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/xfce4"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/xsettingsd" ]] && rm -rf "${ROOTFS}${SELECT_HOME}/.config/xsettingsd"
[[ -e "${ROOTFS}${SELECT_HOME}/.config/" ]] && rm -rf "${ROOTFS}${SELECT_HOME}"/.config/ubl-settings-*
cp -Taf ${ROOTFS}/etc/skel "${ROOTFS}${SELECT_HOME}"
${CMD_CHROOT} bash -c "cd /etc/skel && find . -exec chown -fh ${SELECT_USERNAME}:${SELECT_GROUP} ${SELECT_HOME}/{} \;"
${CMD_CHROOT} /usr/bin/chown -fh ${SELECT_USERNAME}:${SELECT_GROUP} "${SELECT_HOME}"
${CMD_CHROOT} /usr/bin/chmod -f u+rw,g-rwx,o-rwx "${SELECT_HOME}"
@ -949,7 +971,7 @@ exec_05_neededusers(){
[[ ${PARAM} =~ ^[[:alnum:]_]+("="|"[".*"]=") ]] && eval "${PARAM%%=*}=\${PARAM#*=}"
fi
# Если по умолчанию нет ни одного пользователя, то создаём администратора
#[[ -z ${NEEDEDUSERS} ]] && NEEDEDUSERS="${DEFAULTUSER}:${ADMUID}:${DEFAULTPASSWD}:Administrator"
#[[ -z ${NEEDEDUSERS} ]] && NEEDEDUSERS="${DEFAULTUSER}:${ADMUID}:${DEFAULTPASSWD}:$(i18n "Administrator")"
[[ -n ${ROOTFS} ]] && { [[ -z $(cmdline_value users) ]] || NEEDEDUSERS=$(cmdline_value users); }
[[ ${NOSECUREROOTPASSWD} == ${DEFAULTROOTPASSWD} ]] && ADDADM=yes
if [[ -n ${NEEDEDUSERS} ]]; then
@ -1078,8 +1100,7 @@ exec_06_useradd(){
[[ ${SELECT_USERNAME} != "" ]] && USERADD[${SELECT_USERNAME}]=":${SELECT_UID}:${SELECT_GROUP}:${SELECT_EXTRAGROUP}::${SELECT_PASSWORD}"
done 3< <(tr ';' '\n' <<< $(cmdline_value useradd))
if [[ ${#USERADD[@]} == 0 ]]; then
local DEFAULTUSER_GECOS="Administrator"
[[ ${LANG} =~ "ru_RU" ]] && DEFAULTUSER_GECOS="Администратор"
local DEFAULTUSER_GECOS=$(i18n "Administrator")
USERADD[${DEFAULTUSER}]="${DEFAULTUSER_GECOS}:${ADMUID}::::${DEFAULTPASSWD}"
fi
if [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ ${#USERADD[@]} -ne 0 ]]; then
@ -1455,6 +1476,8 @@ exec_99_dm_hint_password(){
# Если файл подключен как ресурс с функциями, то выйти
return 0 2>/dev/null && return 0
#rm -f "${FILE_ROOT_USERS}"
[[ -n ${SSC_ARGV0} ]] && SELF_FILE=${SSC_ARGV0} && SELF_NAME=${SSC_ARGV0##*/} && SELF_PATH=${SSC_ARGV0%/*} || { SELF_FILE=${0} && SELF_NAME=${0##*/} && SELF_PATH=${0%/*}; }
init
if [[ -z $@ ]]; then
while read -r FUNCTION; do
$"${FUNCTION##* }"

@ -17,8 +17,6 @@
## sys/devices/pci0000:00/0000:00:14.0/usb1/1-8
##
[[ -f /usr/bin/bash ]] && /usr/bin/bash --version | grep -q ^"GNU bash" || exit 1
LIST_PPD=$(cat <<EOF
HP LaserJet Pro M404-M405:hp-laserjet_pro_m404-m405-ps.ppd.gz
HP LaserJet Pro M201-M202:hp-laserjet_pro_m201_m202-ps.ppd.gz
@ -27,7 +25,7 @@ EOF
init_printer(){
echo "${DEVNAME}" | grep -q "/dev/usb/lp" && DEVNAME="$(udevadm info -a -n ${DEVNAME} 2>/dev/null | grep "looking at" | head -1 | cut -d\' -f2 | sed "s/\/usbmisc.*//")"
[[ -z "${DEVNAME}" ]] && echo "$(date '+%m.%d.%Y %T'): ${PKGNAME} : ${ACTION} : ERROR : Not found DEVICE ${DEVNAME}"; [[ -z "${DEVNAME}" ]] && exit 1
[[ -z "${DEVNAME}" ]] && echo "$(date '+%m.%d.%Y %T'): ${SELF_NAME} : ${ACTION} : ERROR : Not found DEVICE ${DEVNAME}"; [[ -z "${DEVNAME}" ]] && exit 1
# INFODEV="$(udevadm info -a -n ${DEVNAME} 2>/dev/null)"
# DEV_IDPRODUCT="$(echo "${INFODEV}" | grep ATTRS{idProduct} | head -1 | grep -o '".*"' | tr -d '"' 2>/dev/null)"
DEV_IDPRODUCT="$(cat /${DEVNAME}/../idProduct)"
@ -48,14 +46,14 @@ init_printer(){
done
# PRINTER_LP="/dev/$(cat /${DEVNAME}/usbmisc/*/uevent | grep DEVNAME | cut -d= -f2)"
PRINTER_LP="/dev/usb/${PRINTER_LP}"
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : init_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : init_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
[[ ${PRINTER_CLS} == "PRINTER" ]] || exit 1
[[ -z ${PRINTER_NAME} ]] && exit 1
# PATH_LOG="/tmp/printer-${DEV_SERIAL}.log"
}
add_printer(){
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : add_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : add_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
# echo "${LIST_PPD}" | while read STR_PRINTER; do
# if [[ ${PRINTER_MDL} == $(echo ${STR_PRINTER} | cut -d":" -f1) ]]; then
# NAME_URI=$(lpinfo -v | grep "direct" | grep "${DEV_SERIAL}" | cut -d" " -f2 | head -1)
@ -65,7 +63,7 @@ add_printer(){
# done
if [[ ${PRINTER_CMD} == "CAPT" ]]; then
# /usr/bin/bash -c "${PATH_SETUP_CAPT} ${DEVNAME} ${ACTION}"
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Forward to CAPT script : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Forward to CAPT script : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
/usr/lib/ublinux/scripts/printers_setup_capt ${ACTION} ${DEVNAME}
else
# NAME_URI=$(lpinfo -v | grep "direct" | grep "usb:" | grep "${DEV_SERIAL}" | cut -d" " -f2 | head -1)
@ -87,7 +85,7 @@ add_printer(){
cupsaccept -E "${PRINTER_NAME}"
echo "export PRINTER=\"${PRINTER_NAME}\"" > /etc/profile.d/ublinux-default-printer.sh
echo "export LPDEST=\"${PRINTER_NAME}\"" >> /etc/profile.d/ublinux-default-printer.sh
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : end add_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : end add_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
fi
}
@ -105,7 +103,7 @@ remove_printer(){
cupsreject -E "${PRINTER_NAME}" 2>/dev/null
# lpadmin -x "${PRINTER_NAME}" 2>/dev/null
grep -q "${PRINTER_NAME}" /etc/profile.d/ublinux-default-printer.sh 2>/dev/null && rm -f /etc/profile.d/ublinux-default-printer.sh
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_printer : ${ACTION} : ${DEVNAME} : ${PRINTER_NAME}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_printer : ${ACTION} : ${DEVNAME} : ${PRINTER_NAME}"
fi
done <<< "$(LC_ALL=en_US.UTF-8 lpstat -v 2>/dev/null | grep "device for" | sed "s/device for //")"
}
@ -114,11 +112,12 @@ remove_printer(){
### ::: M A I N ::: ###
###############################
[[ -n ${SSC_ARGV0} ]] && { [[ -f /usr/bin/bash ]] && /usr/bin/bash --version | grep -q ^"GNU bash" || exit 1; }
[[ -d ${SSC_EXTRACT_DIR} ]] && rm -rf "${SSC_EXTRACT_DIR}"
[[ -n ${SSC_ARGV0} ]] && PKGNAME=${SSC_ARGV0##*/} && PKGPATH=${SSC_ARGV0%/*} || { PKGNAME=${0##*/} && PKGPATH=${0%/*}; }
[[ -z ${SELF_FILE} ]] && [[ -n ${SSC_ARGV0} ]] && SELF_FILE=${SSC_ARGV0} && SELF_NAME=${SSC_ARGV0##*/} && SELF_PATH=${SSC_ARGV0%/*} || { SELF_FILE=${0} && SELF_NAME=${0##*/} && SELF_PATH=${0%/*}; }
# Проверка на суперпользователя
#[[ $USER != 'root' ]] && exec sudo "${PKGNAME}"
#[[ $USER != 'root' ]] && exec sudo "${SELF_NAME}"
PATH_SETUP_CAPT="/usr/lib/ublinux/scripts/printers_setup_capt"
PATH_LOG="/var/log/cups/printers_setup.log"
@ -131,7 +130,7 @@ remove_printer(){
[[ -z ${DEVNAME} ]] && DEVNAME=$2
([[ -z ${DEVNAME} || -z ${ACTION} ]]) && exit 0
echo; echo "-------------------------------------------------------------------------------------------------------------------"
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Start : ${ACTION} : ${DEVNAME}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Start : ${ACTION} : ${DEVNAME}"
case "${ACTION}" in
add)
@ -141,11 +140,11 @@ remove_printer(){
;;
remove)
# echo "${DEVNAME}"
# echo ${PKGNAME} $@ called by $PPID
# echo ${SELF_NAME} $@ called by $PPID
remove_printer
;;
esac
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Finish : ${ACTION} : ${DEVNAME}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Finish : ${ACTION} : ${DEVNAME}"

@ -17,11 +17,10 @@
## sys/devices/pci0000:00/0000:00:14.0/usb1/1-8
##
[[ -f /usr/bin/bash ]] && /usr/bin/bash --version | grep -q ^"GNU bash" || exit 1
init_printer(){
echo "${DEVNAME}" | grep -q "/dev/usb/lp" && DEVNAME="$(udevadm info -a -n ${DEVNAME} 2>/dev/null | grep "looking at" | head -1 | cut -d\' -f2 | sed "s/\/usbmisc.*//")"
[[ -z "${DEVNAME}" ]] && echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : ${ACTION} : ERROR : Not found DEVICE ${DEVNAME}"; [[ -z "${DEVNAME}" ]] && exit 1
[[ -z "${DEVNAME}" ]] && echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : ${ACTION} : ERROR : Not found DEVICE ${DEVNAME}"; [[ -z "${DEVNAME}" ]] && exit 1
DEV_IDPRODUCT="$(cat /${DEVNAME}/../idProduct)"
DEV_IDVENDOR="$(cat /${DEVNAME}/../idVendor)"
DEV_SERIAL="$(cat /${DEVNAME}/../serial)"
@ -40,7 +39,7 @@ init_printer(){
# PRINTER_LP="/dev/$(cat /${DEVNAME}/usbmisc/*/uevent | grep DEVNAME | cut -d= -f2)"
PRINTER_LP="/dev/usb/${PRINTER_LP}"
[[ ${PRINTER_MDL} == "LBP810" ]] && PRINTER_MDL="LBP1120"
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : init_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : init_printer : ${ACTION} : ${DEVNAME} : ${DEV_IDPRODUCT}:${DEV_IDVENDOR} : ${PRINTER_MFG} : ${PRINTER_MDL} : ${PRINTER_CMD} : ${PRINTER_CLS} : ${DEV_SERIAL} : ${PRINTER_NAME} : ${PRINTER_LP}"
[[ ${PRINTER_MDL} ]] || exit 1
[[ ${PRINTER_CLS} == "PRINTER" ]] || exit 1
[[ ${PRINTER_CMD} == "CAPT" ]] || exit 1
@ -49,28 +48,28 @@ init_printer(){
}
auto_detect_capt_lp(){
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : auto_detect_lp"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : auto_detect_lp"
for DEV_LP in /dev/usb/lp*; do
INFODEV="$(udevadm info -a -n ${DEV_LP} 2>/dev/null)"
DEV_IEEE1284_ID="$(echo "${INFODEV}" | grep ATTRS{ieee1284_id} | head -1 | grep -o '".*"' | tr -d '"' | tr ";" "\n" 2>/dev/null)"
PRINTER_MDL="$(echo "${DEV_IEEE1284_ID}" | grep MDL | head -1 | cut -d: -f2 2>/dev/null)"
PRINTER_CMD="$(echo "${DEV_IEEE1284_ID}" | grep CMD | head -1 | cut -d: -f2 2>/dev/null)"
[[ ${PRINTER_CMD} == "CAPT" ]] && DEVNAME="$(udevadm info -a -n ${DEV_LP} | grep "looking at" | head -1 | cut -d\' -f2 | sed "s/\/usbmisc.*//")" && echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Auto detect CAPT printer: ${DEV_LP}" || echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Printer: ${DE_LP} is not CAPT !"
[[ ${PRINTER_CMD} == "CAPT" ]] && DEVNAME="$(udevadm info -a -n ${DEV_LP} | grep "looking at" | head -1 | cut -d\' -f2 | sed "s/\/usbmisc.*//")" && echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Auto detect CAPT printer: ${DEV_LP}" || echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Printer: ${DE_LP} is not CAPT !"
done
}
# Удалить CAPT принтер, который определился и установился автоматически без CCPD
remove_not_ccpdcapt(){
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_not_ccpdcapt : ${PRINTER_NAME}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_not_ccpdcapt : ${PRINTER_NAME}"
PRINTER_NOTCCP=$(LC_ALL=en_US.UTF-8 lpstat -v 2>/dev/null | grep " usb://.*${DEV_SERIAL}.*" | head -1 | cut -d: -f1 | cut -d" " -f3)
[[ -n ${PRINTER_NOTCCP} ]] && lpadmin -x "${PRINTER_NOTCCP}" && echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_not_ccpdcapt : REMOVE : ${PRINTER_NOTCCP}"
# LC_ALL=en_US.UTF-8 lpstat -v "${PRINTER_NAME}" 2>/dev/null | grep -q " usb://.*${DEV_SERIAL}.*" | head -1 && lpadmin -x "${PRINTER_NAME}" && echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_not_ccpdcapt : REMOVE : ${PRINTER_NAME}"
[[ -n ${PRINTER_NOTCCP} ]] && lpadmin -x "${PRINTER_NOTCCP}" && echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_not_ccpdcapt : REMOVE : ${PRINTER_NOTCCP}"
# LC_ALL=en_US.UTF-8 lpstat -v "${PRINTER_NAME}" 2>/dev/null | grep -q " usb://.*${DEV_SERIAL}.*" | head -1 && lpadmin -x "${PRINTER_NAME}" && echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_not_ccpdcapt : REMOVE : ${PRINTER_NAME}"
}
add_printer(){
# Сделать проверку, если принтер существует с одинаковым именем, но другой адрес ${PRINTER_LP}
if ! LC_ALL=en_US.UTF-8 lpstat -v "${PRINTER_NAME}" &>/dev/null; then
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : add_printer : ${PRINTER_NAME}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : add_printer : ${PRINTER_NAME}"
NAME_URI="ccp://localhost:59687"
NAME_PPD=$(lpinfo --make-and-model ${PRINTER_NAME_PPD} -m | head -1 | cut -d" " -f1)
# NAME_PPD=$(basename -- $(grep -H ${PRINTER_NAME} /usr/share/cups/model/*.ppd | head -1 | cut -d: -f1))
@ -97,7 +96,7 @@ remove_printer(){
while read PRINTER_DEV_LP_CAPT; do
if [[ ! -e "${PRINTER_DEV_LP_CAPT}" ]] || echo "${DEVNAME}" | grep -q "/dev/usb/lp"; then
PRINTER_NAME=$(cat /etc/ccpd.conf | grep -B1 "^DevicePath" | head -1 | tr -d "<&>" | cut -d" " -f2)
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_printer : ${ACTION} : ${DEVNAME} : ${PRINTER_DEV_LP_CAPT} : ${PRINTER_NAME}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_printer : ${ACTION} : ${DEVNAME} : ${PRINTER_DEV_LP_CAPT} : ${PRINTER_NAME}"
cupsdisable -E "${PRINTER_NAME}" 2>/dev/null
cupsreject -E "${PRINTER_NAME}" 2>/dev/null
ccpdadmin -x "${PRINTER_NAME}" 2>/dev/null
@ -110,7 +109,7 @@ remove_printer(){
done <<< "$(systemctl -q is-enabled ccpd.service && [[ -f /etc/ccpd.conf ]] && cat /etc/ccpd.conf | grep "^DevicePath" | cut -d" " -f2 | xargs)"
# Удалить все принтеры CCP
while read PRINTER_CCP; do
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : remove_printer : REMOVE PRINTER CCP: ${PRINTER_CCP}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : remove_printer : REMOVE PRINTER CCP: ${PRINTER_CCP}"
# cupsdisable -E "${PRINTER_CCP}" 2>/dev/null
# cupsreject -E "${PRINTER_CCP}" 2>/dev/null
# ccpdadmin -x "${PRINTER_CCP}"
@ -124,7 +123,7 @@ start_captstatusui(){
DESKTOP_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.desktop"
SERVICE_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.service"
# Создаем кнопку запуска captstatusui
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : start_captstatusui : ${PATH_APPLICATION}/${DESKTOP_CAPTSTATUSUI}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : start_captstatusui : ${PATH_APPLICATION}/${DESKTOP_CAPTSTATUSUI}"
echo '[Desktop Entry]
Type=Application
Exec=captstatusui -P '${PRINTER_NAME}'
@ -167,7 +166,7 @@ stop_captstatusui(){
NAME_CAPTSTATUSUI="captstatusui-${PRINTER_NAME}"
DESKTOP_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.desktop"
SERVICE_CAPTSTATUSUI="${NAME_CAPTSTATUSUI}.service"
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : stop_captstatusui : ${PATH_APPLICATION}/${DESKTOP_CAPTSTATUSUI}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : stop_captstatusui : ${PATH_APPLICATION}/${DESKTOP_CAPTSTATUSUI}"
[[ -n ${LOGIN_USER} ]] && systemctl -q --machine=${LOGIN_USER}@.host --user disable --now ${SERVICE_CAPTSTATUSUI} 2>/dev/null
systemctl --global disable ${SERVICE_CAPTSTATUSUI}
# rm -f "${XDG_AUTOSTART}/${DESKTOP_CAPTSTATUSUI}"
@ -183,11 +182,12 @@ stop_captstatusui(){
### ::: M A I N ::: ###
###############################
[[ -n ${SSC_ARGV0} ]] && { [[ -f /usr/bin/bash ]] && /usr/bin/bash --version | grep -q ^"GNU bash" || exit 1; }
[[ -d ${SSC_EXTRACT_DIR} ]] && rm -rf "${SSC_EXTRACT_DIR}"
[[ -n ${SSC_ARGV0} ]] && PKGNAME=${SSC_ARGV0##*/} && PKGPATH=${SSC_ARGV0%/*} || { PKGNAME=${0##*/} && PKGPATH=${0%/*}; }
[[ -z ${SELF_FILE} ]] && [[ -n ${SSC_ARGV0} ]] && SELF_FILE=${SSC_ARGV0} && SELF_NAME=${SSC_ARGV0##*/} && SELF_PATH=${SSC_ARGV0%/*} || { SELF_FILE=${0} && SELF_NAME=${0##*/} && SELF_PATH=${0%/*}; }
# Проверка на суперпользователя
#[[ $USER != 'root' ]] && exec sudo "${PKGNAME}"
#[[ $USER != 'root' ]] && exec sudo "${SELF_NAME}"
PATH_LOG="/var/log/cups/printers_setup.log"
exec 3>&1 4>&2
@ -197,7 +197,7 @@ stop_captstatusui(){
[[ -n $1 ]] && ACTION="$1" || ACTION="add"
[[ -n $2 ]] && DEVNAME="$2" || auto_detect_capt_lp
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Start: ${ACTION} : ${DEVNAME}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Start: ${ACTION} : ${DEVNAME}"
# Пользователь под которым мы вошли в ситему
LOGIN_USER=$(who | grep "(:[[:digit:]])" | grep "tty" | head -1 | cut -d" " -f1) #"
@ -225,7 +225,7 @@ stop_captstatusui(){
stop_captstatusui
;;
esac
echo "$(date '+%m.%d.%Y %T') : ${PKGNAME} : Finish : ${ACTION} : ${DEVNAME}"
echo "$(date '+%m.%d.%Y %T') : ${SELF_NAME} : Finish : ${ACTION} : ${DEVNAME}"
#udevadm info -a -n /dev/usb/lp0 | grep "ATTRS{ieee1284_id}"
#lpstat -v

@ -356,6 +356,8 @@ VERSION=
## Обновлять домашний каталог при загрузке если он уже существует
## UPDATEHOME=*no|n|disable|yes|y|enable|
## UPDATEHOME[<user_name>]=*no|n|disable|yes|y|enable|
## <user_name> # Имя пользователя, необязательное поле. Если не указано, то применяется для всех пользователей
## UPDATEHOME=yes
## Добавить пользователя с ID 1000 в группу Администраторов 'wheel'

Loading…
Cancel
Save