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() {
# Функция для вопроса пользователю, перепаковать ли пакет
repackq() {
# Не rpm файлы перепаковываются и без ключа --repack
if [[ $PKG_SYMB_LINK_PATH == *.rpm ]]; then
if [[ $PKG_PATH == *.rpm ]]; then
$YAD_DEFAULT --image="dialog-question" --text "Перепаковать ли rpm файл для переопределения зависимостей?" \
--button="yad-yes:0" \
......@@ -46,7 +46,7 @@ repackq() {
else
EEPM_ARGS="--auto -i"
fi
echo "epm args: $EEPM_ARGS"
echo "Аргументы epm: $EEPM_ARGS"
}
# GUI селектор пакетов
......@@ -56,10 +56,11 @@ pkgselection() {
}
# Проверка, пакет ли файл
preparepkg() {
hack_for_paths_with_spaces() {
PKG_NAME=$(basename -- "$PKG_PATH" | tr -d ' ')
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() {
# Тут есть костыль, который каждую строку с помощью sed делает с решеткой. YAD воспринимает только так.
(
# 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=$?
case $exit_code in
......@@ -101,16 +102,52 @@ installpkg() {
}
show_help() {
echo "Использование: $0 [опция] [путь-к-пакету]"
echo "Опции:"
echo " --help, -h Показать эту справку"
echo " --version, -v Показать информацию о версии"
echo "Передайте путь к пакету, если не хотите использовать окно выбора файла."
}
main() {
if [[ $# -eq 0 ]]; then
# Проверка и вызов окна выбора файлов, если PKG_PATH не установлен
if [[ -z "$PKG_PATH" ]]; then
echo "Путь к пакету не указан. Вызов функции выбора пакета..."
pkgselection
else
echo "Arguments provided: $1"
PKG_PATH="$1"
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
installpkg
}
main "$@"
\ No newline at end of file
# Обработка аргументов перед вызовом main
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