You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -30,7 +30,7 @@ Você já deixou um bot, uma API ou um script rodando em segundo plano enquanto
30
30
31
31
**FortScript resolve isso automaticamente.** Ele pausa seus scripts quando você abre um jogo ou aplicativo pesado, e retoma quando você fecha. Simples assim.
32
32
33
-
**Multiplaforma** FortScript foi desenvolvido para funcionar em qualquer plataforma seja Windows, Linux ou MacOS.
33
+
**Multiplataforma:**O FortScript foi desenvolvido para funcionar em qualquer sistema operacional, seja Windows, Linux ou MacOS.
34
34
35
35
### Como funciona
36
36
@@ -173,7 +173,7 @@ app.run()
173
173
174
174
> **Dica:** Você pode combinar as duas formas! Argumentos passados no código sobrescrevem os valores do arquivo YAML.
175
175
176
-
Fortscript está em constante evolução, em próximas versões sera possivel executar projetos de outras linguagens, assim como poder escolher a forma de como o projeto sera iniciado como qual gerenciador de pacotes usar para iniciar o script/projeto.
176
+
**Nota:** O FortScript está em constante evolução. Em próximas versões, será possível executar projetos de outras linguagens, além de escolher o gerenciador de pacotes para iniciar cada script/projeto.
177
177
178
178
### Tipos de projeto/script atualmente suportados
179
179
@@ -199,30 +199,7 @@ app = FortScript()
199
199
app.run()
200
200
```
201
201
202
-
### Opção 2: Configuração via argumentos (sem arquivo YAML)
203
-
204
-
Passe todas as configurações diretamente no código:
on_resume=notificar_retomada, # Callback ao retomar
277
-
log_level="DEBUG", # Nível de log
256
+
projects=meus_projetos,
257
+
heavy_process=meus_processos,
258
+
ram_threshold=90, # Pausar se RAM > 90%
259
+
ram_safe=80, # Retomar se RAM < 80%
260
+
on_pause=notificar_pausa,
261
+
on_resume=notificar_retomada,
262
+
log_level="DEBUG",
278
263
)
279
264
280
265
app.run()
281
266
```
282
267
283
-
### Opção 5: Via CLI (terminal)
268
+
### Opção 4: Via CLI (terminal)
284
269
285
-
Ideal para uso pessoal, sem escrever código
270
+
Ideal para uso rápido ou testes básicos.
286
271
287
272
```bash
288
273
fort
289
274
```
290
275
291
-
> **Nota:** A CLI atualmente executa o FortScript a partir do `src\fortscript\cli\fortscript.yaml` o que não seria o ideal. Em versões futuras as configurações serão guardadas globalmente e comandos adicionais como `fort add` serão adicionados.
276
+
> **Atenção:** Atualmente, a CLI busca as configurações no arquivo interno do pacote (`src/fortscript/cli/fortscript.yaml`), o que limita a personalização local via CLI. Para projetos reais, recomenda-se o uso via script Python (Opções 1 a 3) até que o suporte a configurações locais na CLI seja implementado.
292
277
293
278
---
294
279
295
280
## Exemplo Prático: Modo Gaming
296
281
297
282
Imagine que você é um desenvolvedor que roda scripts de trabalho (bots, APIs, automações) durante o dia, mas quer jogar à noite sem que o PC fique travando.
298
283
284
+
Neste exemplo, usaremos a lista de jogos integrada (`GAMES`) do FortScript para não precisar configurar cada jogo manualmente.
285
+
299
286
### Estrutura do projeto
300
287
301
288
```text
@@ -306,147 +293,87 @@ meu_projeto/
306
293
├── api_local/
307
294
│ ├── node_modules/
308
295
│ └── package.json # API Express rodando localmente
309
-
├── automacao/
310
-
│ └── backup.exe # Script de backup automático
311
-
├── fortscript.yaml
312
-
└── modo_gaming.py
313
-
```
314
-
315
-
### Arquivo `fortscript.yaml`
316
-
317
-
```yaml
318
-
projects:
319
-
- name: "Bot Discord"
320
-
path: "./bot_discord/main.py"
321
-
- name: "API Local"
322
-
path: "./api_local/package.json"
323
-
- name: "Backup Automático"
324
-
path: "./automacao/backup.exe"
325
-
326
-
heavy_processes:
327
-
- name: "GTA V"
328
-
process: "gta5"
329
-
- name: "Cyberpunk 2077"
330
-
process: "cyberpunk2077"
331
-
- name: "Valorant"
332
-
process: "valorant"
333
-
- name: "League of Legends"
334
-
process: "leagueclient"
335
-
- name: "CS2"
336
-
process: "cs2"
337
-
- name: "Fortnite"
338
-
process: "fortnite"
339
-
- name: "Apex Legends"
340
-
process: "r5apex"
341
-
342
-
ram_threshold: 85
343
-
ram_safe: 75
344
-
log_level: "INFO"
296
+
└── modo_gaming.py # Seu script gerenciador
345
297
```
346
298
347
-
### Arquivo `modo_gaming.py` (versão completa com todos os argumentos)
299
+
### Arquivo `modo_gaming.py`
348
300
349
301
```python
350
302
import os
351
-
from fortscript import FortScript
303
+
from fortscript import FortScript, GAMES
352
304
353
-
# Caminhos dos projetos
305
+
# Caminhos dos projetos (usando os.path para compatibilidade)
- [ ] **Condições por Projeto** permitir que um projeto específico só pause se um aplicativo específico abrir. Exemplo: "Pausar o script do bot apenas se o Cyberpunk2077 abrir, mas deixar o Bot do Discord rodando".
444
-
- [ ] Tentar fazer um encerramento amigavel do script antes de usar um terminate()
445
-
- [ ] Tratamento de Processos Mortos: Se um script que o FortScript iniciou fechar sozinho (erro ou crash), a biblioteca ainda vai achar que ele está rodando até o próximo ciclo. Seria bom verificar se o processo ainda está "alive" periodicamente.
446
-
- [ ]bstração de Projetos (Refatoração): Atualmente, o
447
-
start_scripts
448
-
tem um if/elif gigante para detectar o tipo de arquivo. Seria muito mais elegante ter classes separadas: PythonProject, NodeProject, ExeProject, todas herdando de uma classe base Project. Assim, adicionar um novo tipo (como Go ou Docker) seria apenas criar uma nova classe.
449
-
- Type Hinting: Adicione dicas de tipo em todos os métodos para melhorar o intellisense para quem for usar sua biblioteca. Exm: def load_config(self, path: str) -> dict:.
0 commit comments