
alexabolada
(usa Debian)
Enviado em 15/09/2025 - 03:29h
Continuação.
Vou mostrar uma versão mais robusta do script.
Ela lida com CSVs com vírgulas e com campos entre aspas.
Usa
python3 para parse seguro.
O script cria o prefix e chama o
wineboot.
[code]
#!/usr/bin/env python3
# criar_prefix_csv.py
# Uso: ./criar_prefix_csv.py arquivo.csv chave_id
import csv
import os
import sys
import subprocess
from pathlib import Path
if len(sys.argv) < 3:
print("Uso: criar_prefix_csv.py arquivo.csv chave_id")
sys.exit(1)
arquivo = Path(sys.argv[1]).expanduser()
chave = sys.argv[2]
pfx_base = Path.home() / ".wine-prefixes"
pfx_base.mkdir(parents=True, exist_ok=True)
with arquivo.open(newline='') as f:
reader = csv.reader(f)
header = next(reader, None)
found = None
for row in reader:
if any(chave in col for col in row):
found = row
break
if not found:
print("Chave não encontrada.")
sys.exit(1)
# Ajuste os índices conforme seu CSV
# Ex.: name=col0, store=col1, id=col2, build=col3
name = found[0] if len(found) > 0 else "app"
idcol = found[2] if len(found) > 2 else chave
san = f"{name}-{idcol}"
# sanitize
san = "".join(c if c.isalnum() or c in "._-" else "_" for c in san)[:200]
pfx = pfx_base / san
if pfx.exists():
print(f"Prefix já existe: {pfx}")
else:
pfx.mkdir(parents=True, exist_ok=True)
env = os.environ.copy()
env["WINEPREFIX"] = str(pfx)
env["WINEARCH"] = "win64" # ajuste para win32 se preciso
print("Inicializando prefix em:", pfx)
subprocess.run(["wineboot", "--init"], env=env)
print("Prefix pronto em:", pfx)
print("Para instalar: WINEPREFIX=\"%s\" wine /caminho/para/installer.exe" % pfx)
</code>
Permissões do script.
$ chmod +x criar_prefix_csv.py
Execução do script.
$ ./criar_prefix_csv.py sua_lista.csv 0fb6e06aacd14e88b1aaea8f54dd8525
Verifique se o
wine está instalado.
$ wine --version
Se o CSV for grande.
Mostre só a primeira linha para eu adaptar o script.
$ sed -n '1p' sua_lista.csv
Se precisar converter vírgulas simples para tab.
$ sed 's/,/\\t/g' seu_arquivo.csv > seu_arquivo.tsv
Antes de copiar para o
compatdata do Steam.
Feche o
Steam.
Cheque processos do Steam.
$ pgrep -a steam
Se necessário, mate o processo (use com cuidado).
$ pkill -f steam
Copie o prefix para o app do Steam.
$ cp -a ~/.wine-prefixes/StarTrekOnline-0fb6e06 ~/.steam/steam/steamapps/compatdata/APPID/pfx
Ajuste dono e permissões.
$ chown -R $(id -u):$(id -g) ~/.steam/steam/steamapps/compatdata/APPID/pfx
Dicas rápidas de troubleshooting.
Se o
wineboot falhar, rode com debug.
$ WINEPREFIX="~/.wine-prefixes/StarTrekOnline-0fb6e06" WINEDEBUG=+loaddll wineboot --init
Use
winetricks para bibliotecas.
$ WINEPREFIX="~/.wine-prefixes/StarTrekOnline-0fb6e06" winetricks corefonts vcrun2019
Quer que eu adapte o script aos campos exatos do seu CSV?
Envie a primeira linha (header) e uma linha de exemplo.