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
**FortScript** is a Python Process Manager, based on RAM monitoring and OS process detection, that automatically starts, pauses, and terminates applications using reactive resource consumption policies.
7
19
8
20
---
@@ -11,6 +23,11 @@ A process supervisor with execution control based on system resource state.
11
23
12
24
FortScript can be integrated into any Python project as a library to manage child processes and monitor system health.
13
25
26
+
### Installation
27
+
```bash
28
+
pip install fortscript
29
+
```
30
+
14
31
### Quick Start
15
32
```python
16
33
from fortscript import FortScript
@@ -27,18 +44,27 @@ app.run()
27
44
-**Resource Monitoring**: Built-in hooks for RAM usage and process activity.
28
45
-**Multi-Runtime**: Supports Python, Node.js (pnpm), and native Executables.
29
46
30
-
### Usage Examples
31
-
32
47
#### 1. Managing Independent Modules
33
48
You can use FortScript as a central controller for various scripts scattered across your system.
34
49
35
50
**config.yaml**:
36
51
```yaml
52
+
# List of projects to be managed
37
53
projects:
38
54
- name: "Trading Bot"
39
55
path: "C:/Users/Dev/Finance/bot.py"
40
56
- name: "Server Monitor"
41
57
path: "C:/Users/Dev/Server/monitor.js"
58
+
59
+
# Processes that, when detected, will pause your projects
60
+
heavy_processes:
61
+
- name: "Fortnite"
62
+
process: "fortnite"
63
+
- name: "Video Editor"
64
+
process: "resolve"
65
+
66
+
# RAM usage percentage threshold to trigger safe shutdown
67
+
ram_threshold: 90
42
68
```
43
69
44
70
#### 2. Integration in Larger Projects
@@ -54,21 +80,34 @@ def start_services():
54
80
manager.run()
55
81
```
56
82
83
+
### Configuration Options
84
+
85
+
The `config.yaml` file supports the following fields:
86
+
87
+
| Field | Description | Type | Default |
88
+
| :--- | :--- | :--- | :--- |
89
+
| `projects` | List of applications to manage. Each item needs a `name` and `path`. | List | `[]` |
90
+
| `heavy_processes` | List of processes that trigger a pause. Each item needs a `name` and `process` (substring of the executable name). | List | `[]` |
91
+
| `ram_threshold` | Maximum RAM usage percentage allowed before stopping scripts. | Integer | `80` |
92
+
57
93
---
58
94
59
95
## 2. CLI
60
96
61
97
The CLI is an interface designed for a broad audience, allowing for easy process management.
62
98
63
-
> **Note:** The CLI is currently in development. It will soon be available directly via `pip`.
64
-
65
-
- **Configuration**: The initialization file paths for your scripts are located in `cli/config.yaml`.
66
-
- **Future**: Soon, it will be possible to add the main initialization script to the CLI by running a single command inside the project folder.
67
-
68
99
### Usage
100
+
If you are developing locally:
69
101
```bash
70
-
uv run cli/cli.py
102
+
uv run fort
71
103
```
104
+
After installation, simply run:
105
+
```bash
106
+
fort
107
+
```
108
+
109
+
- **Configuration**: The CLI looks for a `config.yaml` file in the same directory as the script.
110
+
- **Auto-detection**: Soon, it will be possible to add the main initialization script to the CLI by running a single command inside the project folder.
72
111
73
112
---
74
113
@@ -80,8 +119,8 @@ The following list tracks the progress of our features and future implementation
80
119
- [x] **RAM Usage Monitoring**: Automatic triggers based on memory percentage.
**FortScript** é um Process Manager em Python, baseado em monitoramento de RAM e detecção de processos do sistema operacional, que inicia, pausa e encerra aplicações automaticamente usando políticas reativas de consumo de recursos.
8
20
@@ -12,6 +24,11 @@ Um supervisor de processos com controle de execução baseado no estado dos recu
12
24
13
25
O FortScript pode ser integrado em qualquer projeto Python como uma biblioteca para gerenciar processos filhos e monitorar a saúde do sistema.
14
26
27
+
### Instalação
28
+
```bash
29
+
pip install fortscript
30
+
```
31
+
15
32
### Início Rápido
16
33
```python
17
34
from fortscript import FortScript
@@ -28,18 +45,27 @@ app.run()
28
45
-**Monitoramento de Recursos**: Hooks integrados para uso de RAM e atividade de processos.
29
46
-**Multi-Runtime**: Suporta Python, Node.js (pnpm) e Executáveis nativos.
30
47
31
-
### Exemplos de Uso
32
-
33
48
#### 1. Gerenciando Módulos Independentes
34
49
Você pode usar o FortScript como um controlador central para vários scripts espalhados pelo seu sistema.
35
50
36
51
**config.yaml**:
37
52
```yaml
53
+
# Lista de projetos a serem gerenciados
38
54
projects:
39
55
- name: "Bot de Trade"
40
56
path: "C:/Users/Dev/Finance/bot.py"
41
57
- name: "Monitor de Servidor"
42
58
path: "C:/Users/Dev/Server/monitor.js"
59
+
60
+
# Processos que, quando detectados, pausarão seus projetos
61
+
heavy_processes:
62
+
- name: "Fortnite"
63
+
process: "fortnite"
64
+
- name: "Editor de Vídeo"
65
+
process: "resolve"
66
+
67
+
# Limite de porcentagem de uso de RAM para acionar o desligamento seguro
68
+
ram_threshold: 90
43
69
```
44
70
45
71
#### 2. Integração em projetos maiores
@@ -55,21 +81,34 @@ def iniciar_servicos():
55
81
gerenciador.run()
56
82
```
57
83
84
+
### Opções de Configuração
85
+
86
+
O arquivo `config.yaml` suporta os seguintes campos:
87
+
88
+
| Campo | Descrição | Tipo | Padrão |
89
+
| :--- | :--- | :--- | :--- |
90
+
| `projects` | Lista de aplicações para gerenciar. Cada item precisa de `name` e `path`. | Lista | `[]` |
91
+
| `heavy_processes` | Lista de processos que ativam a pausa. Cada item precisa de `name` e `process` (parte do nome do executável). | Lista | `[]` |
92
+
| `ram_threshold` | Porcentagem máxima de uso de RAM permitida antes de parar os scripts. | Inteiro | `80` |
93
+
58
94
---
59
95
60
96
## 2. CLI
61
97
62
98
A CLI é uma interface projetada para um público amplo, permitindo o gerenciamento fácil de processos.
63
99
64
-
> **Nota:** A CLI está atualmente em desenvolvimento. Em breve estará disponível diretamente via `pip`.
65
-
66
-
- **Configuração**: Os paths dos arquivos de inicialização dos seus scripts ficam localizados em `cli/config.yaml`.
67
-
- **Futuro**: Em breve, será possível adicionar o script principal de inicialização à CLI executando apenas um comando dentro da pasta do projeto.
68
-
69
100
### Uso
101
+
Se você estiver desenvolvendo localmente:
70
102
```bash
71
-
uv run cli/cli.py
103
+
uv run fort
72
104
```
105
+
Após a instalação, basta executar:
106
+
```bash
107
+
fort
108
+
```
109
+
110
+
- **Configuração**: A CLI procura por um arquivo `config.yaml` no mesmo diretório do script.
111
+
- **Auto-detecção**: Em breve, será possível adicionar o script principal de inicialização à CLI executando apenas um comando dentro da pasta do projeto.
73
112
74
113
---
75
114
@@ -80,9 +119,9 @@ A lista a seguir acompanha o progresso de nossas funcionalidades e futuras imple
80
119
- [x] **Monitorar Processos Pesados**: Detecção de aplicativos que consomem muitos recursos.
81
120
- [x] **Monitorar Uso de Memória RAM**: Gatilhos automáticos baseados na porcentagem de memória.
0 commit comments