Skip to content

Commit 44ae2ce

Browse files
committed
Actualizacion de Documentación + Workflow
Primer Intento de publicación workflow para automatización de README.md (futura escalabilidad y menor dependencia de actualización manual)
1 parent bf9172f commit 44ae2ce

File tree

11 files changed

+177
-263
lines changed

11 files changed

+177
-263
lines changed
324 KB
Loading
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/usr/bin/env python3
2+
import re
3+
from pathlib import Path
4+
5+
EXCLUDED_DIRS = {
6+
'.git',
7+
'.github',
8+
'__pycache__'
9+
}
10+
11+
EXCLUDED_FILES = {
12+
'README.md',
13+
'CONTRIBUTING.md',
14+
'INFO.md',
15+
'KEYWORD.md',
16+
'LICENSE'
17+
}
18+
19+
ROOT = Path('.')
20+
21+
def generate_tree(path: Path, depth: int = 0):
22+
lines = []
23+
24+
for item in sorted(path.iterdir(), key=lambda x: x.name):
25+
if item.name in EXCLUDED_DIRS:
26+
continue
27+
28+
if item.is_dir():
29+
indent = ' ' * depth
30+
lines.append(f"{indent}- {item.name}")
31+
lines.extend(generate_tree(item, depth + 1))
32+
33+
elif (
34+
item.is_file()
35+
and item.suffix == '.md'
36+
and item.name not in EXCLUDED_FILES
37+
):
38+
indent = ' ' * depth
39+
rel_path = item.as_posix()
40+
lines.append(f"{indent}- [{item.name}](/{rel_path})")
41+
42+
return lines
43+
44+
45+
def update_readme(tree_md: str):
46+
readme = Path('README.md')
47+
48+
if not readme.exists():
49+
raise FileNotFoundError("README.md no encontrado")
50+
51+
content = readme.read_text(encoding='utf-8')
52+
53+
start = '<!-- AUTO-GENERATED-INDEX:START -->'
54+
end = '<!-- AUTO-GENERATED-INDEX:END -->'
55+
56+
pattern = re.compile(
57+
re.escape(start) + '.*?' + re.escape(end),
58+
re.DOTALL
59+
)
60+
61+
new_block = f"{start}\n{tree_md}\n{end}"
62+
63+
updated = pattern.sub(new_block, content)
64+
65+
readme.write_text(updated, encoding='utf-8')
66+
67+
68+
if __name__ == '__main__':
69+
tree = '\n'.join(generate_tree(ROOT))
70+
update_readme(tree)

.github/workflows/auto-readme.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Auto-generate README index
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
update-readme:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout repository
14+
uses: actions/checkout@v4
15+
16+
- name: Set up Python
17+
uses: actions/setup-python@v5
18+
with:
19+
python-version: '3.x'
20+
21+
- name: Generate README index
22+
run: python .github/scripts/generate_readme_index.py
23+
24+
- name: Commit README changes
25+
run: |
26+
git config user.name "github-actions"
27+
git config user.email "[email protected]"
28+
git add README.md
29+
git commit -m "docs: auto-update repository index" || echo "No changes to commit"
30+
git push

INFO.md

Lines changed: 7 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Linux Commands es un repositorio creado por [Nisamov](https://github.com/Nisamov
44

55
## Origen
66

7-
El origen del proyecto está reistrado sobre la fecha 01/03/2023, sin embargo, el origen oficial del documento, se sitúa a mediados del verano del año 2022, mientras Nisamov estaba comenzando a descubir el mundo de Linux y las posibilidades que traía consigo.
7+
El origen del proyecto está registrado sobre la fecha 01/03/2023, sin embargo, el origen oficial del documento, se sitúa a mediados del verano del año 2022, mientras Nisamov estaba comenzando a descubir el mundo de Linux y las posibilidades que traía consigo.
88

99
## Historia
1010

@@ -19,75 +19,22 @@ En 22/11/2023, se creó el primer directorio en un USB portatil con la funcional
1919

2020
Para el 11/09/2025, ya había entrado en grado superior, aportando así tanto nuevo conocimiento, como actualizando el viejo contenido subido al repositorio.
2121

22-
## Infromación
23-
24-
El contenido de Linux commands ha hecho que a partir de si mismo, puedan crearse nuevos repositorios, como bien [SwitchCommands](https://github.com/NisamovOrg/SwitchCommands), estos, siendo una variante de LinuxCommands, cumplen con el mismo objetivo, proveer información y servir como hoja de apuntes completamente abierta.
25-
El lenguaje oficial de LinuxCommands es el Español, cualquier otro idioma que se muestre en el repositorio ha de ser tomado como una referencia o falta de traducción, es posible que a la larga puedan aparecer versiones específicas para ciertos idiomas, no obstante, el original es y siempre será el Español.
26-
27-
Las tildes son restringidas, permitendo la búsqueda exacta de los comandos mediante 'Control + H'.
28-
29-
## Recomendación
30-
31-
> Recomendación de uso:
32-
Se recomienda clonar el repositorio para un mayor manejo y libre uso (siguiendo siempre, las restricciones impuestas).
33-
34-
**Extensiones:**
35-
36-
Cuando se use `Visual Studio Code`, se recomienda instalar las siguiente extensiones:
37-
```
38-
[Extensiones - Visual Studio Code]
39-
├── Open in New Window (Permite mostrar contendo en una nueva ventana)
40-
├── HTML Preview (Permite previsualizar documentos HTML)
41-
└── MDX Preview (Permite previsualizar documentos MARKDOWN)
42-
```
43-
44-
## Clonación de repositorio:
45-
### Clonar el repositorio: [Windows]
46-
47-
Abrimos la terminal y nos posicionamos en la ubicación donde queremos que se copie el repositorio:
48-
```
49-
Control + R
50-
cd /Desktop
51-
```
52-
Clonamos el repositorio:
53-
```
54-
git clone https://github.com/Nisamov/LinuxCommands
55-
```
56-
Este comando clonará el respositorio dentro de la localiación de escritorio, en caso de quererla en otra ubicación, ten en cuenta el idioma de tu sistema operativo y ambia los valores según tus preferencias:
57-
`/Desktop` = `/Escritorio`
58-
59-
### Clonar el repositorio: [Linux]
60-
61-
Abrimos la terminal y nos posicionamos en la ubicación donde queremos que se copie el repositorio:
62-
```
63-
Control + T
64-
cd /home/user
65-
```
66-
Instalamos git
67-
```
68-
sudo apt install git
69-
```
70-
Clonamos el respotiorio:
71-
```
72-
git clone https://github.com/Nisamov/LinuxCommands /home/user/Documents
73-
```
74-
Este comando clona el repositorio en la ruta indicada al final, si se elimina dicha ruta, el repositorio se clonará en la ruta donde se encuentre con la consola.
75-
7622
## Contribución
7723

7824
Durante la creación de LinuxCommands, varias personas aportaron infromación de tal froma que a partir de sus Contribuciones, se pudieron crear nueva subcategorías, dando así lugar, a nuevas secciones y mayor contenido dentro del repositorio.
7925

8026
Las personas que en los orígenes aportaron grandes cantidades de infromación al repositorio son:
8127

8228
- ⥏﹅⥑ [Andrés Abadías](https://github.com/Nisamov) [Creador del repositorio y dueño de LinuxCommands]
83-
- ⥏﹆⥑ Unai Urrestarazu [Contribuidor en sección de ciberseguridad]
84-
- ⥏﹆⥑ Clara C. [Contribuidora en sección de gestión de ficheros y directorios]
85-
- ⥏﹆⥑ Juan P. [Contribuidor en sección de servicios servidor]
86-
- ⥏﹆⥑ Diego Gracía [Contribuidor en información del sistema]
29+
- ⥏﹆⥑ Unai Urrestarazu : Profesor [Grado Medio y Superior]
30+
- ⥏﹆⥑ Clara Cirac Nerín : Profesor [Grado Medio]
31+
- ⥏﹆⥑ Juan Palacios Perez : Profesor [Grado Medio]
32+
- ⥏﹆⥑ Diego Gracía : Compañero de Clase [Grado Medio]
33+
- ⥏﹆⥑ David Torralba : Profesor [Grado Superior]
8734

8835
## Licencia
8936

9037
Licencia de uso [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.es)
9138

9239
> [ ! ] Repositorio creado por [Andrés Abadías](https://github.com/Nisamov).
93-
<!-- por y para -->
40+
<!-- por y para Nisamov-->

KEYWORD.md

Lines changed: 0 additions & 53 deletions
This file was deleted.

README.md

Lines changed: 4 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Todos los derechos pertenecientes a Andrés Ruslan Abadías Otal | Nisamov: gith
7272
</div>
7373
-->
7474

75-
![Cartel Principal](.github/media/img.png)
75+
![Cartel Principal](.github/media/LinuxCommandsWhiteTheme.png)
7676

7777
# LinuxCommands | Comandos y Servicios
7878

@@ -83,124 +83,6 @@ Este repositorio está basado en los apuntes personales del creador [Andrés Rus
8383
El formato de comandos establecido en ficheros `commands.md`, está basado en el [Documento de Origen](.github/origins/LinuxCommandsOrigen.md) creado el 15/07/2022, siendo [document_gestion/commands.md](/document_gestion/commands.md) el producto definitivo de ese mismo fichero.
8484

8585
### Estructura del Repositorio:
86-
```sh
87-
.
88-
├── .github
89-
│ ├── media
90-
│ │ └── img.png
91-
│ ├── origins
92-
│ │ └── LinuxCommandsOrigen.md
93-
│ └── FUNDING.yml
94-
├── access_control_lists
95-
│ ├── commands.md
96-
│ └── theory.md
97-
├── backup_rsync
98-
│ ├── commands.md
99-
│ └── theory.md
100-
├── combination_keys
101-
│ └── combination.md
102-
├── cron_tasks
103-
│ ├── commands.md
104-
│ └── theory.md
105-
├── data_dump
106-
│ ├── commands.md
107-
│ └── theory.md
108-
├── document_gestion
109-
│ ├── commands.md
110-
│ ├── compression.md
111-
│ ├── main.md
112-
│ └── theory.md
113-
├── firewall_ufw
114-
│ ├── commands.md
115-
│ └── theory.md
116-
├── iptables
117-
│ ├── command-list.md
118-
│ ├── commands.md
119-
│ └── theory.md
120-
├── permission_gestion
121-
│ ├── permissions.md
122-
│ └── theory.md
123-
├── scripts
124-
│ └── bash
125-
│ ├── scripts_ejemplo
126-
│ │ ├── echo.sh
127-
│ │ └── for.sh
128-
│ └── theory.md
129-
├── secure_channel
130-
│ ├── secure_channel_ftp
131-
│ │ ├── commands.md
132-
│ │ └── theory.md
133-
│ └── secure_channel_ssh
134-
│ ├── commands.md
135-
│ └── theory.md
136-
├── security
137-
│ ├── backup
138-
│ │ ├── commands.md
139-
│ │ └── theory.md
140-
│ ├── proxy_squid
141-
│ │ └── documentation.md
142-
│ ├── raid
143-
│ │ ├── mount.md
144-
│ │ ├── process.sh
145-
│ │ └── theory.md
146-
│ ├── vpn_openvpn
147-
│ │ └── documentation.md
148-
│ └── audit.md
149-
├── services
150-
│ ├── commands.md
151-
│ └── theory.md
152-
├── software_gestion
153-
│ └── commands.md
154-
├── system_data
155-
│ ├── disk_partition
156-
│ │ ├── commands.md
157-
│ │ ├── theory.md
158-
│ │ └── virtualdisk.md
159-
│ ├── network_configuration
160-
│ │ ├── dhcp_failover
161-
│ │ │ ├── manual.md
162-
│ │ │ ├── serv1_01-network-manager-all.yaml
163-
│ │ │ ├── serv1_dhcpd.conf
164-
│ │ │ ├── serv2_01-network-manager-all.yaml
165-
│ │ │ ├── serv2_dhcpd.conf
166-
│ │ │ └── servers_isc-dhcp-server
167-
│ │ ├── dhcp_samba
168-
│ │ │ ├── smb.conf
169-
│ │ │ └── theory.md
170-
│ │ ├── interfaces_net
171-
│ │ │ ├── dynamic-network.conf
172-
│ │ │ ├── static-network.conf
173-
│ │ │ └── theory.md
174-
│ │ ├── netplan_net
175-
│ │ │ ├── dynamic-network.conf
176-
│ │ │ ├── static-network.conf
177-
│ │ │ └── theory.md
178-
│ │ ├── commands.md
179-
│ │ └── theory.md
180-
│ ├── system_data
181-
│ │ ├── packet_install_theory.md
182-
│ │ └── system_code.md
183-
│ └── system_structure
184-
│ └── linux-structure.md
185-
├── users_permissions
186-
│ ├── system_users.md
187-
│ └── user_gestion.md
188-
├── web_server
189-
│ ├── apache2
190-
│ │ └── documentation.md
191-
│ ├── nginx
192-
│ │ ├── GeoIP2
193-
│ │ │ └── documentation.md
194-
│ │ └── documentation.md
195-
│ └── wordpress
196-
│ └── documentation.md
197-
├── .gitignore
198-
├── CONTRIBUTING.md
199-
├── INFO.md
200-
├── KEYWORD.md
201-
├── LICENSE
202-
└── README.md
203-
```
204-
<!--
205-
</div>
206-
-->
86+
87+
<!-- AUTO-GENERATED-INDEX:START -->
88+
<!-- AUTO-GENERATED-INDEX:END -->

0 commit comments

Comments
 (0)