Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
PortWINE
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
Mikhail Tergoev
PortWINE
Commits
18dc8399
Unverified
Commit
18dc8399
authored
7 months ago
by
Vladislav
Committed by
Boris Yumankulov
7 months ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added duplicate detection feature
parent
e90b8aa2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
60 additions
and
28 deletions
+60
-28
functions_helper
data_from_portwine/scripts/functions_helper
+60
-28
No files found.
data_from_portwine/scripts/functions_helper
View file @
18dc8399
...
...
@@ -1000,18 +1000,31 @@ stop_portwine () {
fi
for
check
in
${
PORT_WINE_PATH
}
/
*
.desktop
;
do
SHORTCUT_SKIP_LIST+
=
"
$check
"
if
PREFIX_SKIP_LIST
=
"
$(
grep
-A1
'###AUTOCREATE###'
"
$check
"
)
"
;
then
SHORTCUT_SKIP_LIST+
=
"
${
check
//
"
${
PORT_WINE_PATH
}
/"
/
""
}${
PREFIX_SKIP_LIST
//###AUTOCREATE###[[
:space:]]###PREFIX:/
"%"
}
"
fi
done
SHORTCUT_SKIP_LIST
=
"
${
SHORTCUT_SKIP_LIST
//
"
${
PORT_WINE_PATH
}
/"
/
""
}
"
if
[[
${
SHORTCUT_SKIP_LIST
}
!=
"*.desktop"
]]
;
then
if
[[
${
SHORTCUT_SKIP_LIST
}
!=
"*.desktop
%
"
]]
;
then
SHORTCUT_SKIP_LIST
=
"
${
SHORTCUT_SKIP_LIST
//
" "
/
"*"
}
"
SHORTCUT_SKIP_LIST
=
"
${
SHORTCUT_SKIP_LIST
//
".desktop"
/
".lnk
"
}
"
for
skip
in
${
SHORTCUT_SKIP_LIST
}
;
do
SHORTCUT_SKIP_LIST_NEW+
=
"-not -name "
${
skip
}
" "
done
SHORTCUT_SKIP_LIST
=
"
${
SHORTCUT_SKIP_LIST
//
".desktop"
/
".lnk"
}
"
SHORTCUT_SKIP_LIST
=
"
${
SHORTCUT_SKIP_LIST
//
"###"
/
" "
}
"
else
SHORTCUT_SKIP_LIST
=
""
fi
for
prefix_dir
in
"
${
PORT_WINE_PATH
}
"
/prefixes/
*
;
do
shortcut_fix
()
{
SHORTCUT_SKIP_LIST_NEW
=
""
prefix_check
=
${
dir
//*prefixes\/
}
prefix_check
=
${
prefix_check
//\/drive_c*/
}
for
fix
in
${
SHORTCUT_SKIP_LIST
}
;
do
if
[[
"
${
prefix_check
}
"
==
${
fix
//*%/
}
]]
;
then
SHORTCUT_SKIP_LIST_NEW+
=
"-not -name "
${
fix
//%*/
}
" "
fi
done
}
for
prefix_dir
in
"
${
PORT_WINE_PATH
}
"
/prefixes/
*
;
do
DESKTOP_DIRS+
=(
"
${
prefix_dir
}
/drive_c/users/steamuser/Desktop"
"
${
prefix_dir
}
/drive_c/users/Public/Desktop"
...
...
@@ -1019,6 +1032,7 @@ stop_portwine () {
done
for
dir
in
"
${
DESKTOP_DIRS
[@]
}
"
;
do
shortcut_fix
while
IFS
=
read
-r
-d
''
link_file
;
do
LINKS+
=(
"
$link_file
"
)
done
< <
(
find
"
$dir
"
-type
f
-iname
"*.lnk"
${
SHORTCUT_SKIP_LIST_NEW
}
-print0
2>/dev/null |
sort
-u
)
...
...
@@ -1026,8 +1040,8 @@ stop_portwine () {
for
link_file
in
"
${
LINKS
[@]
}
"
;
do
if
timeout
3 exiftool
"
$link_file
"
2>/dev/null
>
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
;
then
prefix_name
=
$(
echo
$link_file
|
awk
-F
"/prefixes/"
'{print $2}'
|
awk
-F
"/"
'{print $1}'
)
if
grep
-i
"Icon File Name"
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
;
then
prefix_name
=
$(
echo
"
$link_file
"
|
awk
-F
"/prefixes/"
'{print $2}'
|
awk
-F
"/"
'{print $1}'
)
if
grep
-i
"Icon File Name"
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
&>/dev/null
;
then
link_drive
=
$(
sed
-n
's/^Icon File Name\s*:\s*//p'
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
|
cut
-d
:
-f1
|
awk
'{print tolower($0)}'
)
link_path
=
$(
sed
-n
's/^Icon File Name\s*:\s*//p'
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
|
sed
's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi'
|
sed
"s|^.|
${
PORT_WINE_PATH
}
/data/prefixes/
$prefix_name
/dosdevices/
$link_drive
|g"
|
sed
's/\\/\//g'
)
else
...
...
@@ -1036,13 +1050,12 @@ stop_portwine () {
fi
link_name
=
$(
sed
-n
's/^File Name\s*:\s*//p'
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
|
sed
's|\.lnk||'
)
link_cmd
=
$(
sed
-n
's/^Command Line Arguments\s*:\s*//p'
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
)
echo
$link_path
else
if
!
command
-v
exiftool &>/dev/null
;
then
print_warning
"use portable exiftool"
prefix_name
=
$(
echo
$link_file
|
awk
-F
"/prefixes/"
'{print $2}'
|
awk
-F
"/"
'{print $1}'
)
prefix_name
=
$(
echo
"
$link_file
"
|
awk
-F
"/prefixes/"
'{print $2}'
|
awk
-F
"/"
'{print $1}'
)
env
PERL5LIB
=
"
${
PW_PLUGINS_PATH
}
/portable/lib/perl5"
"
${
PW_PLUGINS_PATH
}
/portable/bin/exiftool"
"
$link_file
"
2>/dev/null
>
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
if
grep
-i
"Icon File Name"
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
;
then
if
grep
-i
"Icon File Name"
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
&>/dev/null
;
then
link_drive
=
$(
sed
-n
's/^Icon File Name\s*:\s*//p'
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
|
cut
-d
:
-f1
|
awk
'{print tolower($0)}'
)
link_path
=
$(
sed
-n
's/^Icon File Name\s*:\s*//p'
"
${
PW_TMPFS_PATH
}
/exiftool.tmp"
|
sed
's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi'
|
sed
"s|^.|
${
PORT_WINE_PATH
}
/data/prefixes/
$prefix_name
/dosdevices/
$link_drive
|g"
|
sed
's/\\/\//g'
)
else
...
...
@@ -1055,9 +1068,17 @@ stop_portwine () {
yad_error
"exiftool - broken!"
fi
fi
exe_path
=
"
$(
realpath
"
${
link_path
}
"
)
"
create_shortcut_from_link
print_info
"Created link for
$link_name
"
if
!
exe_path
=
"
$(
realpath
"
${
link_path
}
"
)
"
;
then
try_remove_file
"
$link_file
"
print_warning
"Removed broken link for
$link_name
"
else
create_shortcut_from_link
if
[[
"
${
CREATE_WITH_PREFIX
}
"
==
"true"
]]
;
then
print_info
"Created link for
$link_name
-
$prefix_name
"
else
print_info
"Created link for
$link_name
"
fi
fi
done
add_in_stop_portwine
...
...
@@ -1376,17 +1397,26 @@ create_shortcut_from_link () {
fi
fi
echo
"[Desktop Entry]"
>
"
${
PORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop"
echo
"Name=
${
PORTPROTON_NAME
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop"
if
[[
-f
"
${
PORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop"
]]
;
then
mv
-f
"
${
link_file
}
"
"
${
link_file
//
".lnk"
/
" -
${
prefix_name
}
.lnk"
}
"
PW_NAME_DESKTOP
=
"
${
PORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
-
${
prefix_name
}
.desktop"
export
CREATE_WITH_PREFIX
=
"true"
else
PW_NAME_DESKTOP
=
"
${
PORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop"
export
CREATE_WITH_PREFIX
=
""
fi
echo
"[Desktop Entry]"
>
"
${
PW_NAME_DESKTOP
}
"
echo
"Name=
${
PORTPROTON_NAME
}
"
>>
"
${
PW_NAME_DESKTOP
}
"
if
[[
!
-z
"
$link_cmd
"
]]
;
then
if
check_flatpak
then
echo
"Exec=flatpak run ru.linux_gaming.PortProton
\"
${
exe_path
}
\"
\"
${
link_cmd
}
\"
"
>>
"
${
P
ORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop
"
else
echo
"Exec=env
\"
${
PORT_SCRIPTS_PATH
}
/start.sh
\"
\"
${
exe_path
}
\"
\"
${
link_cmd
}
\"
"
>>
"
${
P
ORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop
"
then
echo
"Exec=flatpak run ru.linux_gaming.PortProton
\"
${
exe_path
}
\"
\"
${
link_cmd
}
\"
"
>>
"
${
P
W_NAME_DESKTOP
}
"
else
echo
"Exec=env
\"
${
PORT_SCRIPTS_PATH
}
/start.sh
\"
\"
${
exe_path
}
\"
\"
${
link_cmd
}
\"
"
>>
"
${
P
W_NAME_DESKTOP
}
"
fi
else
if
check_flatpak
then
echo
"Exec=flatpak run ru.linux_gaming.PortProton
\"
${
exe_path
}
\"
"
>>
"
${
P
ORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop
"
else
echo
"Exec=env
\"
${
PORT_SCRIPTS_PATH
}
/start.sh
\"
\"
${
exe_path
}
\"
"
>>
"
${
P
ORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop
"
then
echo
"Exec=flatpak run ru.linux_gaming.PortProton
\"
${
exe_path
}
\"
"
>>
"
${
P
W_NAME_DESKTOP
}
"
else
echo
"Exec=env
\"
${
PORT_SCRIPTS_PATH
}
/start.sh
\"
\"
${
exe_path
}
\"
"
>>
"
${
P
W_NAME_DESKTOP
}
"
fi
fi
{
...
...
@@ -1395,19 +1425,21 @@ create_shortcut_from_link () {
echo
"StartupNotify=true"
echo
"Path=
${
PORT_SCRIPTS_PATH
}
/"
echo
"Icon=
${
PORT_WINE_PATH
}
/data/img/
${
PORTPROTON_NAME
}
.png"
}
>>
"
${
PORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop"
chmod
u+x
"
${
PORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop"
echo
"###AUTOCREATE###"
echo
"###PREFIX:
$prefix_name
###"
}
>>
"
${
PW_NAME_DESKTOP
}
"
chmod
u+x
"
${
PW_NAME_DESKTOP
}
"
if
[[
"
$DESKTOP_SESSION
"
=
~
"gnome"
]]
;
then
try_remove_file
"
${
HOME
}
/.local/share/applications/
${
PORTPROTON_NAME
}
.desktop"
cp
-f
"
${
P
ORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop
"
"
${
HOME
}
/.local/share/applications/"
cp
-f
"
${
P
W_NAME_DESKTOP
}
"
"
${
HOME
}
/.local/share/applications/"
else
if
[[
-d
"
${
HOME
}
/Desktop"
]]
;
then
cp
-f
"
${
P
ORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop
"
"
${
HOME
}
/Desktop/"
cp
-f
"
${
P
W_NAME_DESKTOP
}
"
"
${
HOME
}
/Desktop/"
elif
[[
-d
"
${
HOME
}
/Рабочий стол"
]]
;
then
cp
-f
"
${
P
ORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop
"
"
${
HOME
}
/Рабочий стол/"
cp
-f
"
${
P
W_NAME_DESKTOP
}
"
"
${
HOME
}
/Рабочий стол/"
elif
[[
$(
xdg-user-dir DESKTOP
)
]]
;
then
cp
-f
"
${
P
ORT_WINE_PATH
}
/
${
PORTPROTON_NAME
}
.desktop
"
"
$(
xdg-user-dir DESKTOP
)
"
cp
-f
"
${
P
W_NAME_DESKTOP
}
"
"
$(
xdg-user-dir DESKTOP
)
"
fi
fi
}
...
...
This diff is collapsed.
Click to expand it.
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