Commit 02919a59 authored by Roman Alifanov's avatar Roman Alifanov

added argument handling and some fixes (ALT bug 49986)

parent 5fe1e8ce
...@@ -30,7 +30,7 @@ ntf_error() { ...@@ -30,7 +30,7 @@ ntf_error() {
# Функция для вопроса пользователю, перепаковать ли пакет # Функция для вопроса пользователю, перепаковать ли пакет
repackq() { repackq() {
# Не rpm файлы перепаковываются и без ключа --repack # Не rpm файлы перепаковываются и без ключа --repack
if [[ $PKG_SYMB_LINK_PATH == *.rpm ]]; then if [[ $PKG_PATH == *.rpm ]]; then
$YAD_DEFAULT --image="dialog-question" --text "Перепаковать ли rpm файл для переопределения зависимостей?" \ $YAD_DEFAULT --image="dialog-question" --text "Перепаковать ли rpm файл для переопределения зависимостей?" \
--button="yad-yes:0" \ --button="yad-yes:0" \
...@@ -46,7 +46,7 @@ repackq() { ...@@ -46,7 +46,7 @@ repackq() {
else else
EEPM_ARGS="--auto -i" EEPM_ARGS="--auto -i"
fi fi
echo "epm args: $EEPM_ARGS" echo "Аргументы epm: $EEPM_ARGS"
} }
# GUI селектор пакетов # GUI селектор пакетов
...@@ -56,10 +56,11 @@ pkgselection() { ...@@ -56,10 +56,11 @@ pkgselection() {
} }
# Проверка, пакет ли файл # Проверка, пакет ли файл
preparepkg() { hack_for_paths_with_spaces() {
PKG_NAME=$(basename -- "$PKG_PATH" | tr -d ' ') PKG_NAME=$(basename -- "$PKG_PATH" | tr -d ' ')
PKG_SYMB_LINK_PATH="$EPMGPI_TMP/$PKG_NAME" PKG_SYMB_LINK_PATH="$EPMGPI_TMP/$PKG_NAME"
ln -s "$PKG_PATH" "$PKG_SYMB_LINK_PATH" ln -s "$(realpath "$PKG_PATH")" "$PKG_SYMB_LINK_PATH"
PKG_PATH=$PKG_SYMB_LINK_PATH
} }
# Установка пакета # Установка пакета
...@@ -68,7 +69,7 @@ installpkg() { ...@@ -68,7 +69,7 @@ installpkg() {
# Тут есть костыль, который каждую строку с помощью sed делает с решеткой. YAD воспринимает только так. # Тут есть костыль, который каждую строку с помощью sed делает с решеткой. YAD воспринимает только так.
( (
# shellcheck disable=SC2086 # shellcheck disable=SC2086
/usr/bin/pkexec /usr/bin/epm $EEPM_ARGS "$PKG_SYMB_LINK_PATH" 2>&1 /usr/bin/pkexec /usr/bin/epm $EEPM_ARGS "$PKG_PATH" 2>&1
exit_code=$? exit_code=$?
case $exit_code in case $exit_code in
...@@ -101,16 +102,52 @@ installpkg() { ...@@ -101,16 +102,52 @@ installpkg() {
} }
show_help() {
echo "Использование: $0 [опция] [путь-к-пакету]"
echo "Опции:"
echo " --help, -h Показать эту справку"
echo " --version, -v Показать информацию о версии"
echo "Передайте путь к пакету, если не хотите использовать окно выбора файла."
}
main() { main() {
if [[ $# -eq 0 ]]; then # Проверка и вызов окна выбора файлов, если PKG_PATH не установлен
if [[ -z "$PKG_PATH" ]]; then
echo "Путь к пакету не указан. Вызов функции выбора пакета..."
pkgselection pkgselection
else
echo "Arguments provided: $1"
PKG_PATH="$1"
fi fi
preparepkg
if [ ! -f "$PKG_PATH" ]; then
echo "Ошибка: $PKG_PATH - это не файл."
exit 1
fi
if echo "$PKG_PATH" | grep -q " "; then
echo "Путь к пакету содержит пробелы"
hack_for_paths_with_spaces
fi
repackq repackq
installpkg installpkg
} }
main "$@" # Обработка аргументов перед вызовом main
\ No newline at end of file while [[ $# -gt 0 ]]; do
case "$1" in
--help|-h)
show_help
exit 0
;;
--version|-v)
echo "Версия 1.3"
exit 0
;;
*)
echo "Переданы аргументы: $1"
PKG_PATH="$1"
shift
;;
esac
done
main
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment