Skip to content

Commit e6353b5

Browse files
authored
Update unpack-liquorix.sh
1 parent e9dd90e commit e6353b5

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed

HackerOS/Scripts/Bin/unpack-liquorix.sh

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#!/bin/bash
2+
13
# ,-.
24
# ,--, ,-.----. ,--/ /|
35
# ,'_ /| ,---, \ / \ ,--. :/ |
@@ -34,3 +36,154 @@
3436
# ./__; ; \
3537
# | :/\ \ ;
3638
# `---' `--`
39+
40+
set -euo pipefail
41+
42+
TMPFILE="/tmp/xanmod-cpu.hacker"
43+
GITHUB_RAW="https://raw.githubusercontent.com/HackerOS-Linux-System/Hacker-Lang/main/hacker-packages/xanmod-cpu.hacker"
44+
LOGPREFIX="[liquorix-installer]"
45+
46+
echo "${LOGPREFIX} Start"
47+
48+
# 1) Pobierz plik
49+
echo "${LOGPREFIX} Pobieram plik z GitHub: ${GITHUB_RAW} -> ${TMPFILE}"
50+
if ! command -v curl >/dev/null 2>&1; then
51+
echo "${LOGPREFIX} curl nieznalezione, instaluję curl..."
52+
sudo apt update
53+
sudo apt install -y curl
54+
fi
55+
56+
if ! curl -fsSL -o "${TMPFILE}" "${GITHUB_RAW}"; then
57+
echo "${LOGPREFIX} Błąd pobierania pliku z GitHub."
58+
exit 1
59+
fi
60+
echo "${LOGPREFIX} Plik pobrany."
61+
62+
# 2) Parse patterns
63+
mapfile -t mappings < <(sed -e 's/^\s*//;s/\s*$//' "${TMPFILE}" \
64+
| sed '/^\s*$/d' \
65+
| sed '/^\s*#/d' \
66+
| sed 's/^\[\(.*\)\]$/\1/' \
67+
| awk -F'>' '/>/{gsub(/^[ \t]+|[ \t]+$/,"",$1); gsub(/^[ \t]+|[ \t]+$/,"",$2); print $1 "###" $2 }')
68+
69+
if [ ${#mappings[@]} -eq 0 ]; then
70+
echo "${LOGPREFIX} Brak poprawnych mapowań."
71+
exit 1
72+
fi
73+
74+
declare -a patterns
75+
declare -a targets
76+
77+
tmp_sort="$(mktemp)"
78+
for m in "${mappings[@]}"; do
79+
pat="${m%%###*}"
80+
tar="${m##*###}"
81+
printf '%s\t%s\n' "${pat}" "${tar}" >> "${tmp_sort}"
82+
done
83+
84+
mapfile -t sorted_pairs < <(
85+
awk -F'\t' '{print length($1) "\t" $0}' "${tmp_sort}" \
86+
| sort -rn \
87+
| cut -f2- \
88+
| awk -F'\t' '{print $1 "###" $2 }'
89+
)
90+
rm -f "${tmp_sort}"
91+
92+
patterns=()
93+
targets=()
94+
for sp in "${sorted_pairs[@]}"; do
95+
patterns+=("${sp%%###*}")
96+
targets+=("${sp##*###}")
97+
done
98+
99+
# 3) CPU INFO
100+
CPU_INFO="$(lscpu 2>/dev/null || true)"
101+
CPU_MODEL="$(awk -F: '/Model name/ {print $2; exit}' /proc/cpuinfo 2>/dev/null || true)"
102+
CPU_VENDOR="$(awk -F: '/Vendor ID/ {print $2; exit}' /proc/cpuinfo 2>/dev/null || true)"
103+
CPU_TEXT="${CPU_MODEL} ${CPU_VENDOR} ${CPU_INFO}"
104+
CPU_TEXT="$(echo "${CPU_TEXT}" | tr '[:upper:]' '[:lower:]')"
105+
106+
echo "${LOGPREFIX} Wykryty CPU:"
107+
echo "${LOGPREFIX} ${CPU_MODEL}"
108+
109+
# 4) Pattern match
110+
SELECTED_TARGET=""
111+
SELECTED_PATTERN=""
112+
113+
for i in "${!patterns[@]}"; do
114+
pat="$(echo "${patterns[$i]}" | tr '[:upper:]' '[:lower:]')"
115+
tar="${targets[$i]}"
116+
if [ -n "${pat}" ] && echo "${CPU_TEXT}" | grep -F -i -q "${pat}"; then
117+
SELECTED_TARGET="${tar}"
118+
SELECTED_PATTERN="${patterns[$i]}"
119+
break
120+
fi
121+
done
122+
123+
if [ -z "${SELECTED_TARGET}" ]; then
124+
for i in "${!patterns[@]}"; do
125+
if echo "${patterns[$i]}" | tr '[:upper:]' '[:lower:]' | grep -q "all x86-64"; then
126+
SELECTED_TARGET="${targets[$i]}"
127+
SELECTED_PATTERN="${patterns[$i]}"
128+
break
129+
fi
130+
done
131+
fi
132+
133+
if [ -z "${SELECTED_TARGET}" ]; then
134+
echo "${LOGPREFIX} Brak dopasowania — używam domyślnego x86-64"
135+
SELECTED_TARGET="x86-64"
136+
SELECTED_PATTERN="(default x86-64)"
137+
fi
138+
139+
echo "${LOGPREFIX} Dopasowano: '${SELECTED_PATTERN}' -> '${SELECTED_TARGET}'"
140+
141+
# 5) Wybór wariantu – zostaje, choć Liquorix tego nie używa
142+
if echo "${SELECTED_TARGET}" | grep -q "v3"; then
143+
CPU_VARIANT="x64v3"
144+
elif echo "${SELECTED_TARGET}" | grep -q "v2"; then
145+
CPU_VARIANT="x64v2"
146+
else
147+
CPU_VARIANT="x64v1"
148+
fi
149+
150+
echo "${LOGPREFIX} Wariant CPU: ${CPU_VARIANT}"
151+
152+
# 6) Instalacja Liquorix zamiast Xanmod
153+
echo "${LOGPREFIX} Instaluję jądro Liquorix..."
154+
155+
if ! curl -s 'https://liquorix.net/install-liquorix.sh' | sudo bash; then
156+
echo "${LOGPREFIX} Błąd instalacji Liquorix!"
157+
exit 1
158+
fi
159+
160+
echo "${LOGPREFIX} Jądro Liquorix zainstalowane."
161+
162+
# 7) NVIDIA
163+
echo "${LOGPREFIX} Sprawdzam NVIDIA..."
164+
HAS_NVIDIA=0
165+
166+
if command -v lspci >/dev/null 2>&1; then
167+
if lspci -nnk | grep -i -E "nvidia|nvidia corporation" >/dev/null 2>&1; then
168+
HAS_NVIDIA=1
169+
fi
170+
else
171+
echo "${LOGPREFIX} Instaluję pciutils..."
172+
sudo apt update
173+
sudo apt install -y pciutils
174+
if lspci -nnk | grep -i "nvidia" >/dev/null 2>&1; then
175+
HAS_NVIDIA=1
176+
fi
177+
fi
178+
179+
if [ "${HAS_NVIDIA}" -eq 1 ]; then
180+
echo "${LOGPREFIX} Wykryto NVIDIA — instaluję sterowniki."
181+
sudo apt update
182+
sudo apt install -y nvidia-driver nvidia-kernel-dkms nvidia-smi libnvidia-ml1 nvidia-settings nvidia-cuda-mps || {
183+
echo "${LOGPREFIX} Błąd instalacji sterowników NVIDIA."
184+
}
185+
else
186+
echo "${LOGPREFIX} Nie wykryto NVIDIA."
187+
fi
188+
189+
echo "${LOGPREFIX} GOTOWE. Zrestartuj system, aby włączyć jądro Liquorix."

0 commit comments

Comments
 (0)