mirror of
https://abf.rosa.ru/djam/auto-krokodil.git
synced 2025-02-24 02:52:59 +00:00
Suggest to rerun from root when needed
keleg@ noted that otherwise it may download and process dnf metadata and only then dnf will say that it is unable to install packages
This commit is contained in:
parent
0531e53749
commit
53f9579aa4
3 changed files with 32 additions and 1 deletions
|
@ -3,7 +3,7 @@ Name: auto-krokodil
|
||||||
Group: System/Kernel and hardware
|
Group: System/Kernel and hardware
|
||||||
License: GPLv3
|
License: GPLv3
|
||||||
Url: https://abf.io/import/auto-krokodil
|
Url: https://abf.io/import/auto-krokodil
|
||||||
Version: 0.24
|
Version: 0.25
|
||||||
Release: 1
|
Release: 1
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%ifarch %{ix86} %{x86_64}
|
%ifarch %{ix86} %{x86_64}
|
||||||
|
|
24
kroko-cli.sh
24
kroko-cli.sh
|
@ -12,6 +12,7 @@ readonly EXIT_GENERICERROR=1
|
||||||
readonly EXIT_ENODRIVER=10
|
readonly EXIT_ENODRIVER=10
|
||||||
readonly EXIT_ENOGPU=20
|
readonly EXIT_ENOGPU=20
|
||||||
readonly EXIT_ENOCOMMONDRIVER=30
|
readonly EXIT_ENOCOMMONDRIVER=30
|
||||||
|
readonly EXIT_ENOPERM=40
|
||||||
|
|
||||||
# use fake output of lspci for development on hardware without Nvidia
|
# use fake output of lspci for development on hardware without Nvidia
|
||||||
KROKO_FAKE_LSPCI="${KROKO_FAKE_LSPCI:-0}"
|
KROKO_FAKE_LSPCI="${KROKO_FAKE_LSPCI:-0}"
|
||||||
|
@ -363,6 +364,28 @@ _cli_autoinstall(){
|
||||||
dnf $KROKO_DNF_OPTS -y --allowerasing shell "$dnfcmd"
|
dnf $KROKO_DNF_OPTS -y --allowerasing shell "$dnfcmd"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_check_root(){
|
||||||
|
# TODO: convert to gettext (*.po) when there are more translatable messages
|
||||||
|
# For now there is only this message
|
||||||
|
local text_en="Unable to install packages. Rerun this command from root"
|
||||||
|
local text_ru="Невозможно установить пакеты. Перезапустите эту команду от root"
|
||||||
|
local text
|
||||||
|
if [[ "${LANG:-}" =~ ru(|_.*)".UTF-8" ]]
|
||||||
|
then text="$text_ru"
|
||||||
|
else text="$text_en"
|
||||||
|
fi
|
||||||
|
if [ "$EUID" != 0 ]; then
|
||||||
|
_echo_err "$text":
|
||||||
|
local s
|
||||||
|
if command -v sudo >/dev/null 2>&1
|
||||||
|
then s=sudo
|
||||||
|
else s='#'
|
||||||
|
fi
|
||||||
|
_echo_err "$s $0 $*"
|
||||||
|
return $EXIT_ENOPERM
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
_main(){
|
_main(){
|
||||||
case "${1:-}" in
|
case "${1:-}" in
|
||||||
"get-gpus" )
|
"get-gpus" )
|
||||||
|
@ -372,6 +395,7 @@ _main(){
|
||||||
_cli_best_driver
|
_cli_best_driver
|
||||||
;;
|
;;
|
||||||
"autoinstall" )
|
"autoinstall" )
|
||||||
|
_check_root "$@"
|
||||||
_cli_autoinstall
|
_cli_autoinstall
|
||||||
;;
|
;;
|
||||||
"help" | "--help" | "-h" )
|
"help" | "--help" | "-h" )
|
||||||
|
|
|
@ -8,10 +8,17 @@ line_from_lspci;0000;NVIDIA 3;nvidia470-core,nvidia510-core,nvidia515-core;nvidi
|
||||||
test "$(echo 'line_from_lspci;0000;NVIDIA 1;nvidia390-core;nvidia390-core' | _select_best_driver)" = nvidia390-core
|
test "$(echo 'line_from_lspci;0000;NVIDIA 1;nvidia390-core;nvidia390-core' | _select_best_driver)" = nvidia390-core
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
|
|
||||||
echo 'line_from_lspci;0000;NVIDIA 1;nvidia510-core,nvidia515-core;nvidia515-core
|
echo 'line_from_lspci;0000;NVIDIA 1;nvidia510-core,nvidia515-core;nvidia515-core
|
||||||
line_from_lspci;0000;NVIDIA 2;nvidia390-core,nvidia470-core;nvidia470-core,
|
line_from_lspci;0000;NVIDIA 2;nvidia390-core,nvidia470-core;nvidia470-core,
|
||||||
line_from_lspci;0000;NVIDIA 3;nvidia340-core;nvidia340-core' | _select_best_driver 2>/dev/null
|
line_from_lspci;0000;NVIDIA 3;nvidia340-core;nvidia340-core' | _select_best_driver 2>/dev/null
|
||||||
test $? = $EXIT_ENOCOMMONDRIVER || exit 1
|
test $? = $EXIT_ENOCOMMONDRIVER || exit 1
|
||||||
|
|
||||||
|
_check_root 2>/dev/null
|
||||||
|
rc=$?
|
||||||
|
[ "$EUID" = 0 ] && [ "$rc" = 0 ]
|
||||||
|
[ "$EUID" != 0 ] && [ "$rc" = $EXIT_ENOPERM ]
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
echo FINISHED OK
|
echo FINISHED OK
|
||||||
|
|
Loading…
Add table
Reference in a new issue