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
Vladislav
PortWINE
Commits
fa0e61a8
Commit
fa0e61a8
authored
Feb 04, 2024
by
Mikhail Tergoev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more changes to move to curl+yad
parent
f3b1b93c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
54 additions
and
29 deletions
+54
-29
functions_helper
data_from_portwine/scripts/functions_helper
+27
-11
runlib
data_from_portwine/scripts/runlib
+4
-2
setup.sh
data_from_portwine/scripts/setup.sh
+2
-2
start.sh
data_from_portwine/scripts/start.sh
+1
-1
zen_yad_gui
data_from_portwine/scripts/zen_yad_gui
+20
-13
No files found.
data_from_portwine/scripts/functions_helper
View file @
fa0e61a8
...
...
@@ -121,7 +121,8 @@ try_download_game () {
curl
-C
- -#
-A
"Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)"
-H
'Cache-Control: no-cache, no-store'
-H
'Pragma: no-cache'
-L
"
$1
"
-o
"
$2
"
2>&1 |
\
tr
'\r'
'\n'
|
sed
-u
-e
's/#//g'
-e
's/ //g'
-e
's/\.[[:digit:]]%//'
|
\
"
${
pw_yad_v12_3
}
"
--progress
--percentage
=
0
--text
=
"Download
${
PW_DOWNLOAD_FILE_NAME
}
"
--auto-close
--no-escape
\
--auto-kill
--center
--text-align
=
"center"
--fixed
--no-buttons
--title
"PortProton"
--width
=
500
--height
=
90
--auto-kill
--center
--text-align
=
"center"
--fixed
--no-buttons
--title
"PortProton"
--width
=
500
--height
=
90
\
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
if
[
"
${
PIPESTATUS
[0]
}
"
!=
0
]
;
then
print_error
"Failed to download
${
PW_DOWNLOAD_FILE_NAME
}
."
return
1
...
...
@@ -132,18 +133,21 @@ try_download_game () {
try_download
()
{
PW_DOWNLOAD_FILE_NAME
=
"
$(
basename
$1
)
"
[[
!
-f
"
${
pw_yad_v12_3
}
"
]]
&&
local
pw_yad_v12_3
=
"yad"
set
-o
pipefail
curl -#
-A
"Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)"
-H
'Cache-Control: no-cache, no-store'
-H
'Pragma: no-cache'
-L
"
$1
"
-o
"
$2
"
2>&1 |
\
tr
'\r'
'\n'
|
sed
-u
-e
's/#//g'
-e
's/ //g'
-e
's/\.[[:digit:]]%//'
|
\
"
${
pw_yad_v12_3
}
"
--progress
--percentage
=
0
--text
=
"Download
${
PW_DOWNLOAD_FILE_NAME
}
"
--auto-close
--no-escape
\
--auto-kill
--center
--text-align
=
"center"
--fixed
--no-buttons
--title
"PortProton"
--width
=
500
--height
=
90
--auto-kill
--center
--text-align
=
"center"
--fixed
--no-buttons
--title
"PortProton"
--width
=
500
--height
=
90
\
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
if
[
"
${
PIPESTATUS
[0]
}
"
!=
0
]
;
then
print_error
"Failed to download
${
PW_DOWNLOAD_FILE_NAME
}
from GitHub."
print_info
"Try download
${
PW_DOWNLOAD_FILE_NAME
}
from FTP"
curl -#
-A
"Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)"
-L
"ftp://171.22.215.18/archives/
${
PW_DOWNLOAD_FILE_NAME
}
"
-o
"
$2
"
2>&1 |
\
tr
'\r'
'\n'
|
sed
-u
-e
's/#//g'
-e
's/ //g'
-e
's/\.[[:digit:]]%//'
|
\
"
${
pw_yad_v12_3
}
"
--progress
--percentage
=
0
--text
=
"Download
${
PW_DOWNLOAD_FILE_NAME
}
"
--auto-close
--no-escape
\
--auto-kill
--center
--text-align
=
"center"
--fixed
--no-buttons
--title
"PortProton"
--width
=
500
--height
=
90
--auto-kill
--center
--text-align
=
"center"
--fixed
--no-buttons
--title
"PortProton"
--width
=
500
--height
=
90
\
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
if
[
"
${
PIPESTATUS
[0]
}
"
!=
0
]
;
then
print_error
"Failed to download
${
PW_DOWNLOAD_FILE_NAME
}
from FTP."
return
1
...
...
@@ -159,7 +163,8 @@ try_download_to_path () {
curl -#
-A
"Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)"
-H
'Cache-Control: no-cache, no-store'
-H
'Pragma: no-cache'
-L
"
$1
"
-o
"
$2
/
$PW_DOWNLOAD_FILE_NAME
"
2>&1 |
\
tr
'\r'
'\n'
|
sed
-u
-e
's/#//g'
-e
's/ //g'
-e
's/\.[[:digit:]]%//'
|
\
"
${
pw_yad_v12_3
}
"
--progress
--percentage
=
0
--text
=
"Download
${
PW_DOWNLOAD_FILE_NAME
}
"
--auto-close
--no-escape
\
--auto-kill
--center
--text-align
=
"center"
--fixed
--no-buttons
--title
"PortProton"
--width
=
500
--height
=
90
--auto-kill
--center
--text-align
=
"center"
--fixed
--no-buttons
--title
"PortProton"
--width
=
500
--height
=
90
\
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
if
[
"
${
PIPESTATUS
[0]
}
"
!=
0
]
;
then
print_error
"Failed to download
$1
."
return
1
...
...
@@ -229,11 +234,14 @@ var_ld_library_path_update() {
unpack_tar_zst
()
{
set
-o
pipefail
unset
PW_ZSTD_PORT
pw_start_progress_bar_cover_block
"
${
PW_GUI_ICON_PATH
}
/covers/pw_loading_cover.gif"
if
[[
`
command
-v
zstd
`
]]
&>/dev/null
;
then
tar
-I
zstd
-xhvf
"
$1
"
-C
"
$2
"
| sszen
tar
-I
zstd
-xhvf
"
$1
"
-C
"
$2
"
pw_stop_progress_bar_cover_block
[
"
${
PIPESTATUS
[0]
}
"
!=
0
]
&&
print_error
"File
$1
unpacking error."
&&
return
1
||
return
0
else
env
LD_LIBRARY_PATH
=
"
${
LD_LIBRARY_PATH
}
:
${
PW_WINELIB
}
/portable/lib/lib64:
${
PW_WINELIB
}
/portable/lib/lib"
tar
-I
"
${
PW_WINELIB
}
/portable/bin/zstd"
-xhvf
"
$1
"
-C
"
$2
"
| sszen
env
LD_LIBRARY_PATH
=
"
${
LD_LIBRARY_PATH
}
:
${
PW_WINELIB
}
/portable/lib/lib64:
${
PW_WINELIB
}
/portable/lib/lib"
tar
-I
"
${
PW_WINELIB
}
/portable/bin/zstd"
-xhvf
"
$1
"
-C
"
$2
"
pw_stop_progress_bar_cover_block
[
"
${
PIPESTATUS
[0]
}
"
!=
0
]
&&
print_error
"File
$1
unpacking error."
&&
return
1
||
return
0
fi
}
...
...
@@ -243,20 +251,26 @@ unpack_tar_xz () {
tar
-Jxhvf
"
$1
"
-C
"
$2
"
&&
return
0
||
return
1
else
set
-o
pipefail
tar
-Jxhvf
"
$1
"
-C
"
$2
"
| sszen
pw_start_progress_bar_cover_block
"
${
PW_GUI_ICON_PATH
}
/covers/pw_loading_cover.gif"
tar
-Jxhvf
"
$1
"
-C
"
$2
"
pw_stop_progress_bar_cover_block
[
"
${
PIPESTATUS
[0]
}
"
!=
0
]
&&
print_error
"File
$1
unpacking error."
&&
return
1
||
return
0
fi
}
unpack_tar_gz
()
{
set
-o
pipefail
tar
-xhzvf
"
$1
"
-C
"
$2
"
| sszen
pw_start_progress_bar_cover_block
"
${
PW_GUI_ICON_PATH
}
/covers/pw_loading_cover.gif"
tar
-xhzvf
"
$1
"
-C
"
$2
"
pw_stop_progress_bar_cover_block
[
"
${
PIPESTATUS
[0]
}
"
!=
0
]
&&
print_error
"File
$1
unpacking error."
&&
return
1
||
return
0
}
unpack_tar
()
{
set
-o
pipefail
tar
-xhvf
"
$1
"
-C
"
$2
"
| sszen
pw_start_progress_bar_cover_block
"
${
PW_GUI_ICON_PATH
}
/covers/pw_loading_cover.gif"
tar
-xhvf
"
$1
"
-C
"
$2
"
pw_stop_progress_bar_cover_block
[
"
${
PIPESTATUS
[0]
}
"
!=
0
]
&&
print_error
"File
$1
unpacking error."
&&
return
1
||
return
0
}
...
...
@@ -401,10 +415,12 @@ init_wine_ver () {
if
check_symlink
"
${
WINEDIR
}
/share/wine/
${
mono_gecko_chk
}
"
;
then
print_info
"
${
WINEDIR
}
/share/wine/
${
mono_gecko_chk
}
is symlink. OK."
elif
[[
-d
"
${
WINEDIR
}
/share/wine/
${
mono_gecko_chk
}
"
]]
;
then
try_copy_dir
"
${
WINEDIR
}
/share/wine/
${
mono_gecko_chk
}
"
"
${
PORT_WINE_TMP_PATH
}
"
| sszen
pw_start_progress_bar_cover_block
"
${
PW_GUI_ICON_PATH
}
/covers/pw_loading_cover.gif"
try_copy_dir
"
${
WINEDIR
}
/share/wine/
${
mono_gecko_chk
}
"
"
${
PORT_WINE_TMP_PATH
}
"
try_remove_dir
"
${
WINEDIR
}
/share/wine/
${
mono_gecko_chk
}
"
try_force_link_dir
"
${
PORT_WINE_TMP_PATH
}
/
${
mono_gecko_chk
}
"
"
${
WINEDIR
}
"
/share/wine/
print_info
"Copy
${
WINEDIR
}
/share/wine/
${
mono_gecko_chk
}
to tmp and create symlink to
${
WINEDIR
}
/share/wine/. OK."
pw_stop_progress_bar_cover_block
else
try_remove_dir
"
${
WINEDIR
}
/share/wine/
${
mono_gecko_chk
}
"
try_force_link_dir
"
${
PORT_WINE_TMP_PATH
}
/
${
mono_gecko_chk
}
"
"
${
WINEDIR
}
"
/share/wine
...
...
@@ -964,7 +980,7 @@ pw_port_update () {
if
[[
!
-z
"
${
scripts_current_ver
}
"
]]
&&
[[
"
${
scripts_current_ver
}
"
-gt
"
${
scripts_install_ver
}
"
]]
;
then
if
[[
-f
"
${
PW_WINELIB
}
/portable/bin/yad_v12_3"
]]
;
then
export
pw_yad_v12_3
=
"
${
PW_WINELIB
}
/portable/bin/yad_v12_3"
curl
-s
--list-only
"
${
URL_FOR_CHANGELOG
}
/
${
PW_CHANGELOG_FILE
}
"
|
tee
"
${
PORT_WINE_TMP_PATH
}
/curent_var_ver"
| sszen
curl
-s
--list-only
"
${
URL_FOR_CHANGELOG
}
/
${
PW_CHANGELOG_FILE
}
"
|
tee
"
${
PORT_WINE_TMP_PATH
}
/curent_var_ver"
CHANGLOG_NEWS
=
`
cat
"
${
PORT_WINE_TMP_PATH
}
/curent_var_ver"
|
sed
"/Scripts version
${
scripts_install_ver
}
/,
$
d"
|
sed
'1,/---/ d'
`
xcsd
=
`
"
${
pw_yad_v12_3
}
"
--title
"
${
scripts_upd2
}
v.
${
scripts_current_ver
}
"
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
\
--borders
=
3
--form
--separator
=
'%%%'
--width
=
1200
--height
=
600
\
...
...
data_from_portwine/scripts/runlib
View file @
fa0e61a8
...
...
@@ -59,8 +59,10 @@ start_portwine () {
pw_install_dll_in_prefix
init_wine_ver
edit_db_from_gui WARN_CYRILLIC_IN_PATH
unset
WARN_CYRILLIC_IN_PATH
if
[[
-f
"
$portwine_exe
"
]]
&&
[[
"
${
WARN_CYRILLIC_IN_PATH
}
"
==
1
]]
;
then
edit_db_from_gui WARN_CYRILLIC_IN_PATH
unset
WARN_CYRILLIC_IN_PATH
fi
if
[
!
-f
"
${
HOME
}
/.Xresources"
]
;
then
cp
-f
"
${
PORT_SCRIPTS_PATH
}
/.Xresources"
"
${
HOME
}
"
...
...
data_from_portwine/scripts/setup.sh
View file @
fa0e61a8
...
...
@@ -2,7 +2,7 @@
# Author: linux-gaming.ru
.
"
$(
dirname
$(
readlink
-f
"
$0
"
))
/runlib"
if
[[
$(
cat
/etc/os-release |
grep
-i
"flatpak"
)
]]
;
then
if
grep
-i
"flatpak"
/etc/os-release &>/dev/null
;
then
name_desktop
=
"PortProton"
echo
"[Desktop Entry]"
>
"
${
PORT_WINE_PATH
}
/
${
name_desktop
}
.desktop"
echo
"Name=
${
name_desktop
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
name_desktop
}
.desktop"
...
...
@@ -36,7 +36,7 @@ fi
update-desktop-database
-q
"
${
HOME
}
/.local/share/applications"
if
[[
!
$(
cat
/etc/os-release |
grep
-i
"flatpak"
)
]]
if
!
grep
-i
"flatpak"
/etc/os-release &>/dev/null
;
then
xdg-mime default PortProton.desktop
"application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program"
fi
...
...
data_from_portwine/scripts/start.sh
View file @
fa0e61a8
...
...
@@ -667,7 +667,7 @@ else
kill
-s
SIGUSR1
$(
pgrep
-a
yad |
grep
"
\-
-key=
${
KEY
}
\-
-notebook"
|
awk
'{print $1}'
)
>
/dev/null 2>&1
fi
if
[[
$(
cat
/etc/os-release |
grep
-i
"flatpak"
)
]]
;
if
grep
-i
"flatpak"
/etc/os-release &>/dev/null
;
then
PW_EXEC_FROM_DESKTOP
=
"
$(
cat
"
${
PORT_WINE_PATH
}
/
${
PW_YAD_SET
//¬/
" "
}
"
|
grep
Exec |
head
-n
1 |
sed
's|flatpak run com.castrofidel.portproton|\"${PORT_SCRIPTS_PATH}/start.sh\"|'
|
awk
-F
'='
'{print $2}'
)
"
else
PW_EXEC_FROM_DESKTOP
=
"
$(
cat
"
${
PORT_WINE_PATH
}
/
${
PW_YAD_SET
//¬/
" "
}
"
|
grep
Exec |
head
-n
1 |
awk
-F
"=env "
'{print $2}'
)
"
fi
...
...
data_from_portwine/scripts/zen_yad_gui
View file @
fa0e61a8
...
...
@@ -22,16 +22,6 @@ zenity_error_download () {
fi
}
sszen
()
{
zenity
--progress
--title
=
"
$loc_gui_settings
"
--text
=
"
$loc_gui_sett_info
"
--pulsate
--auto-close
--width
=
500
--height
=
90
--no-cancel
}
ssyad
()
{
"
${
pw_yad_v12_3
}
"
--progress
--pulsate
--log-expanded
--undecorated
--center
\
--title
=
"
$loc_gui_settings
"
--progress-text
=
"
$loc_gui_sett_info
"
--enable-log
=
"log"
\
--log-height
=
60
--width
=
500
--height
=
150
--no-buttons
--auto-close
&>/dev/null
}
gui_question
()
{
zenity
--question
--title
"
${
inst_set
}
."
--text
"
$1
"
--no-wrap
&>/dev/null
[
$?
-eq
"0"
]
&&
return
0
||
return
1
...
...
@@ -42,11 +32,22 @@ pw_start_progress_bar_cover () {
PW_GIF_SIZE_X
=
`
file
"
${
PW_GIF_FILE
}
"
|
awk
'{print $7 + 20}'
`
PW_GIF_SIZE_Y
=
`
file
"
${
PW_GIF_FILE
}
"
|
awk
'{print $9 + 20}'
`
"
${
pw_yad
}
"
--picture
--filename
=
"
${
PW_GIF_FILE
}
"
--close-on-unfocus
--no-buttons
--undecorated
--center
\
--skip-taskbar
--width
=
$PW_GIF_SIZE_X
--height
=
$PW_GIF_SIZE_Y
>
/dev/null 2>&1 &
--skip-taskbar
--width
=
$PW_GIF_SIZE_X
--height
=
$PW_GIF_SIZE_Y
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
>
/dev/null 2>&1 &
export
PW_YAD_PID_PROGRESS_BAR_COVER
=
"
$!
"
return
0
}
pw_start_progress_bar_cover_block
()
{
[[
!
-f
"
${
pw_yad
}
"
]]
&&
local
pw_yad
=
"yad"
PW_GIF_FILE
=
"
$1
"
PW_GIF_SIZE_X
=
`
file
"
${
PW_GIF_FILE
}
"
|
awk
'{print $7 + 20}'
`
PW_GIF_SIZE_Y
=
`
file
"
${
PW_GIF_FILE
}
"
|
awk
'{print $9 + 20}'
`
"
${
pw_yad
}
"
--picture
--filename
=
"
${
PW_GIF_FILE
}
"
--close-on-unfocus
--no-buttons
--undecorated
--center
\
--skip-taskbar
--width
=
$PW_GIF_SIZE_X
--height
=
$PW_GIF_SIZE_Y
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
>
/dev/null 2>&1 &
export
PW_YAD_PID_PROGRESS_BAR_COVER_BLOCK
=
"
$!
"
return
0
}
pw_update_pfx_cover_gui
()
{
PW_KEY_PROGRESS_BAR
=
$RANDOM
PW_GIF_FILE
=
"
${
PW_GUI_ICON_PATH
}
/covers/pw_update_pfx_cover.gif"
...
...
@@ -105,6 +106,12 @@ pw_stop_progress_bar_cover () {
}
export
-f
pw_stop_progress_bar_cover
pw_stop_progress_bar_cover_block
()
{
kill
-s
KILL
"
$PW_YAD_PID_PROGRESS_BAR_COVER_BLOCK
"
>
/dev/null 2>&1
return
0
}
export
-f
pw_stop_progress_bar_cover_block
open_changelog
()
{
"
${
pw_yad
}
"
--title
=
"
$loc_gui_changelog
"
--borders
=
3
--no-buttons
--text-align
=
center
\
--text-info
--show-uri
--wrap
--width
=
1200
--height
=
700
--uri-color
=
red
\
...
...
@@ -661,7 +668,7 @@ portwine_create_shortcut () {
echo
"[Desktop Entry]"
>
"
${
PORT_WINE_PATH
}
/
${
name_desktop
}
.desktop"
echo
"Name=
${
name_desktop
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
name_desktop
}
.desktop"
if
[[
$(
cat
/etc/os-release |
grep
-i
"flatpak"
)
]]
if
grep
-i
"flatpak"
/etc/os-release &>/dev/null
then
echo
"Exec=flatpak run com.castrofidel.portproton
\"
${
portwine_exe
}
\"
"
>>
"
${
PORT_WINE_PATH
}
/
${
name_desktop
}
.desktop"
else
echo
"Exec=env "
\"
${
PORT_SCRIPTS_PATH
}
/start.sh
\"
\"
${
portwine_exe
}
\"
""
>>
"
${
PORT_WINE_PATH
}
/
${
name_desktop
}
.desktop"
fi
...
...
@@ -693,7 +700,7 @@ portwine_create_shortcut () {
echo
"#!/usr/bin/env bash"
>
"
${
STEAM_SCRIPTS
}
/
${
name_desktop
}
.sh"
echo
"export START_FROM_STEAM=1"
>>
"
${
STEAM_SCRIPTS
}
/
${
name_desktop
}
.sh"
echo
"export LD_PRELOAD="
>>
"
${
STEAM_SCRIPTS
}
/
${
name_desktop
}
.sh"
if
[[
$(
cat
/etc/os-release |
grep
-i
"flatpak"
)
]]
if
grep
-i
"flatpak"
/etc/os-release &>/dev/null
then
echo
"flatpak run com.castrofidel.portproton
\"
${
portwine_exe
}
\"
"
>>
"
${
STEAM_SCRIPTS
}
/
${
name_desktop
}
.sh"
else
echo
"
\"
${
PORT_SCRIPTS_PATH
}
/start.sh
\"
\"
${
portwine_exe
}
\"
"
>>
"
${
STEAM_SCRIPTS
}
/
${
name_desktop
}
.sh"
fi
...
...
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