Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
epmgpi
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ximper Linux
epmgpi
Commits
5a75d99f
Commit
5a75d99f
authored
Apr 16, 2024
by
Roman Alifanov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
big refactoring
parent
57ecc3c7
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
25 deletions
+38
-25
epmgpi
bin/epmgpi
+38
-25
No files found.
bin/epmgpi
View file @
5a75d99f
...
...
@@ -9,6 +9,8 @@ EPMGPI_TMP=$(mktemp -d -t epmgpi.XXXXXXX)
# shellcheck disable=SC2064
trap
"clean_up_tmp
$EPMGPI_TMP
"
EXIT
EPMGPI_LOG_FILE
=
"
$EPMGPI_TMP
/epmgpi.log"
# Дефолтные параметры yad
YAD_DEFAULT
=
"/usr/bin/yad --window-icon=epmgpi --title=epmgpi --class=epmgpi"
...
...
@@ -36,42 +38,50 @@ repackq() {
--button
=
"yad-yes:0"
\
--button
=
"yad-no:1"
ret
=
$?
local
ANSWER
=
$?
if
[[
$
ret
-eq
0
]]
;
then
EEPM_ARGS
=
"--auto --repack -i"
if
[[
$
ANSWER
-eq
0
]]
;
then
local
EEPM_ARGS
=
"--auto --repack -i"
else
EEPM_ARGS
=
"--auto -i"
local
EEPM_ARGS
=
"--auto -i"
fi
else
EEPM_ARGS
=
"--auto -i"
local
EEPM_ARGS
=
"--auto -i"
fi
echo
"
Аргументы epm:
$EEPM_ARGS
"
echo
"
$EEPM_ARGS
"
}
# GUI селектор пакетов
pkgselection
()
{
PKG_PATH
=
$(
$YAD_DEFAULT
--file
--file-filter
=
"
${
VALID_FILE_EXTENSIONS
[*]
}
"
)
echo
"
$PKG_PATH
"
$YAD_DEFAULT
--file
--file-filter
=
"
${
VALID_FILE_EXTENSIONS
[*]
}
"
}
yad_log_view
()
{
$YAD_DEFAULT
--title
=
"Лог ошибки"
--no-buttons
--text-align
=
center
\
--text-info
--show-uri
--wrap
--width
=
1200
--height
=
550
--uri-color
=
red
\
--filename
=
"
$EPMGPI_TMP
/epmgpi.log"
--filename
=
"
$EPMGPI_LOG_FILE
"
rm
"
$EPMGPI_LOG_FILE
"
exit
1
}
epmgpi_logging
()
{
tee
-a
"
$EPMGPI_LOG_FILE
"
}
# Проверка, пакет ли файл
hack_for_paths_with_spaces
()
{
PKG_PATH
=
"
$1
"
local
PKG_NAME
PKG_NAME
=
$(
basename
--
"
$PKG_PATH
"
|
tr
-d
' '
)
PKG_SYMB_LINK_PATH
=
"
$EPMGPI_TMP
/
$PKG_NAME
"
local
PKG_SYMB_LINK_PATH
=
"
$EPMGPI_TMP
/
$PKG_NAME
"
ln
-s
"
$PKG_PATH
"
"
$PKG_SYMB_LINK_PATH
"
PKG_PATH
=
$PKG_SYMB_LINK_PATH
echo
"
$PKG_SYMB_LINK_PATH
"
}
# Установка пакета
installpkg
()
{
local
PKG_PATH
=
"
$1
"
local
EEPM_ARGS
=
"
$2
"
# Pkexec для выполнения от рута
# Тут есть костыль, который каждую строку с помощью sed делает с решеткой. YAD воспринимает только так.
(
...
...
@@ -87,7 +97,7 @@ installpkg() {
;;
100
)
ntf_error
"Пакет не установлен. Команда завершилась с ошибкой."
echo
"!!! ОШИБКА EPMGPI"
>>
"
$EPMGPI_
TMP
/epmgpi.log
"
echo
"!!! ОШИБКА EPMGPI"
>>
"
$EPMGPI_
LOG_FILE
"
;;
126
)
...
...
@@ -96,11 +106,11 @@ installpkg() {
;;
*
)
ntf_error
"Пакет не установлен."
echo
"!!! ОШИБКА EPMGPI"
>>
"
$EPMGPI_
TMP
/epmgpi.log
"
echo
"!!! ОШИБКА EPMGPI"
>>
"
$EPMGPI_
LOG_FILE
"
;;
esac
)
|
tee
-a
"
$EPMGPI_TMP
/epmgpi.log"
|
sed
-u
's/^/# /'
|
$YAD_DEFAULT
\
)
|
epmgpi_logging
|
sed
-u
's/^/# /'
|
$YAD_DEFAULT
\
--title
=
"Установка пакета"
\
--progress
--width
=
800
--height
=
500
\
--enable-log
=
"Лог"
--log-expanded
--log-on-top
\
...
...
@@ -116,26 +126,30 @@ show_help() {
}
main
()
{
local
PKG_PATH
local
FILE_PATH
FILE_PATH
=
"
$(
realpath
"
$1
"
)
"
# Проверка и вызов окна выбора файлов, если PKG_PATH не установлен
if
[[
-z
"
$
PKG
_PATH
"
]]
;
then
if
[[
-z
"
$
FILE
_PATH
"
]]
;
then
echo
"Путь к пакету не указан. Вызов функции выбора пакета..."
pkgselection
FILE_PATH
=
$(
pkgselection
)
fi
if
[
!
-f
"
$
PKG
_PATH
"
]
;
then
echo
"Ошибка:
$
PKG
_PATH
- это не файл."
if
[
!
-f
"
$
FILE
_PATH
"
]
;
then
echo
"Ошибка:
$
FILE
_PATH
- это не файл."
exit
1
fi
if
echo
"
$
PKG
_PATH
"
|
grep
-q
" "
;
then
if
echo
"
$
FILE
_PATH
"
|
grep
-q
" "
;
then
echo
"Путь к пакету содержит пробелы"
hack_for_paths_with_spaces
PKG_PATH
=
$(
hack_for_paths_with_spaces
"
$FILE_PATH
"
)
else
PKG_PATH
=
$FILE_PATH
fi
repackq
installpkg
installpkg
"
$PKG_PATH
"
"
$(
repackq
)
"
if
grep
-q
"!!! ОШИБКА EPMGPI"
"
$EPMGPI_
TMP
/epmgpi.log
"
;
then
if
grep
-q
"!!! ОШИБКА EPMGPI"
"
$EPMGPI_
LOG_FILE
"
;
then
yad_log_view
fi
}
...
...
@@ -153,10 +167,9 @@ while [[ $# -gt 0 ]]; do
;;
*
)
echo
"Переданы аргументы:
$1
"
PKG_PATH
=
"
$(
realpath
"
$1
"
)
"
main
"
$(
realpath
"
$1
"
)
"
| epmgpi_logging
shift
;;
esac
done
main
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment