@@ -25,6 +25,8 @@ fn_fix_steamclient_so(){
25
25
cp " ${HOME} /.steam/steamcmd/linux32/steamclient.so" " ${2} /steamclient.so"
26
26
elif [ -f " ${steamcmddir} /linux32/steamclient.so" ]; then
27
27
cp " ${steamcmddir} /linux32/steamclient.so" " ${2} /steamclient.so"
28
+ elif [ -f " ${HOME} /.local/share/Steam/steamcmd/linux32/steamclient.so" ]; then
29
+ cp " ${HOME} /.local/share/Steam/steamcmd/linux32/steamclient.so" " ${2} /steamclient.so"
28
30
fi
29
31
fn_fix_msg_end
30
32
fi
@@ -40,34 +42,73 @@ fn_fix_steamclient_so(){
40
42
cp " ${HOME} /.steam/steamcmd/linux64/steamclient.so" " ${2} /steamclient.so"
41
43
elif [ -f " ${steamcmddir} /linux64/steamclient.so" ]; then
42
44
cp " ${steamcmddir} /linux64/steamclient.so" " ${2} /steamclient.so"
45
+ elif [ -f " ${HOME} /.local/share/Steam/steamcmd/linux64/steamclient.so" ]; then
46
+ cp " ${HOME} /.local/share/Steam/steamcmd/linux64/steamclient.so" " ${2} /steamclient.so"
43
47
fi
44
48
fn_fix_msg_end
45
49
fi
46
50
fi
47
51
}
48
52
49
53
# Helps fix: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam,or a local steamclient.so.
50
- if [ ! -f " ${HOME} /.steam/sdk64/steamclient.so" ]; then
51
- fixname=" steamclient.so sdk64"
54
+ steamsdk64=" ${HOME} /.steam/sdk64"
55
+ steamclientsdk64=" ${steamsdk64} /steamclient.so"
56
+ # remove any old unlinked versions of steamclient.so
57
+ if [ -f " ${steamclientsdk64} " ]; then
58
+ if [ " $( stat -c ' %h' " ${steamclientsdk64} " ) " -eq 1 ]; then
59
+ fixname=" steamclient.so sdk64 -- remove old file"
60
+ fn_fix_msg_start
61
+ rm -f " ${steamclientsdk64} "
62
+ fn_fix_msg_end
63
+ fi
64
+ fi
65
+
66
+ # place new hardlink for the file to the disk
67
+ if [ ! -f " ${steamclientsdk64} " ]; then
68
+ fixname=" steamclient.so sdk64 hardlink"
52
69
fn_fix_msg_start
53
- mkdir -p " ${HOME} /.steam/sdk64"
70
+ if [ ! -d " ${steamsdk64} " ]; then
71
+ mkdir -p " ${steamsdk64} "
72
+ fi
54
73
if [ -f " ${HOME} /.steam/steamcmd/linux64/steamclient.so" ]; then
55
- cp " ${HOME} /.steam/steamcmd/linux64/steamclient.so" " ${HOME} /.steam/sdk64/steamclient.so "
74
+ ln " ${HOME} /.steam/steamcmd/linux64/steamclient.so" " ${steamclientsdk64} "
56
75
elif [ -f " ${steamcmddir} /linux64/steamclient.so" ]; then
57
- cp " ${steamcmddir} /linux64/steamclient.so" " ${HOME} /.steam/sdk64/steamclient.so"
76
+ ln " ${steamcmddir} /linux64/steamclient.so" " ${steamclientsdk64} "
77
+ elif [ -f " ${HOME} /.local/share/Steam/steamcmd/linux64/steamclient.so" ]; then
78
+ ln " ${HOME} /.local/share/Steam/steamcmd/linux64/steamclient.so" " ${steamclientsdk64} "
79
+ else
80
+ fn_print_fail_nl " Could not copy any steamclient.so 64bit for the gameserver"
58
81
fi
59
82
fn_fix_msg_end
60
83
fi
61
84
62
85
# Helps fix: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam,or a local steamclient.so.
63
- if [ ! -f " ${HOME} /.steam/sdk32/steamclient.so" ]; then
64
- fixname=" steamclient.so sdk32"
86
+ steamsdk32=" ${HOME} /.steam/sdk32"
87
+ steamclientsdk32=" ${HOME} /.steam/sdk32/steamclient.so"
88
+ if [ -f " ${steamclientsdk32} " ]; then
89
+ if [ " $( stat -c ' %h' " ${steamclientsdk32} " ) " -eq 1 ]; then
90
+ fixname=" steamclient.so sdk32 -- remove old file"
91
+ fn_fix_msg_start
92
+ rm -f " ${steamclientsdk32} "
93
+ fn_fix_msg_end
94
+ fi
95
+ fi
96
+
97
+ # place new hardlink for the file to the disk
98
+ if [ ! -f " ${steamclientsdk32} " ]; then
99
+ fixname=" steamclient.so sdk32 link"
65
100
fn_fix_msg_start
66
- mkdir -p " ${HOME} /.steam/sdk32"
101
+ if [ ! -d " ${steamsdk32} " ]; then
102
+ mkdir -p " ${steamsdk32} "
103
+ fi
67
104
if [ -f " ${HOME} /.steam/steamcmd/linux32/steamclient.so" ]; then
68
- cp " ${HOME} /.steam/steamcmd/linux32/steamclient.so" " ${HOME} /.steam/sdk32/steamclient.so "
105
+ ln " ${HOME} /.steam/steamcmd/linux32/steamclient.so" " ${steamclientsdk32} "
69
106
elif [ -f " ${steamcmddir} /linux32/steamclient.so" ]; then
70
- cp " ${steamcmddir} /linux32/steamclient.so" " ${HOME} /.steam/sdk32/steamclient.so"
107
+ ln " ${steamcmddir} /linux32/steamclient.so" " ${steamclientsdk32} "
108
+ elif [ -f " ${HOME} /.local/share/Steam/steamcmd/linux32/steamclient.so" ]; then
109
+ ln " ${HOME} /.local/share/Steam/steamcmd/linux32/steamclient.so" " ${steamclientsdk32} "
110
+ else
111
+ fn_print_fail_nl " Could not copy any steamclient.so 32bit for the gameserver"
71
112
fi
72
113
fn_fix_msg_end
73
114
fi
0 commit comments