70d79f9145
Arreglat el remapeig dels retorns de carro, que en algunes circumstàncies no quedaven ben fixats en '@n' sinó en '@'. Amb l'ús de sed, ara va perfecte. |
||
---|---|---|
LICENSE | ||
README.md | ||
description.txt | ||
ook.sh |
README.md
ook
Situació
El programari BBBS
implementa de manera nativa la gestió automàtica i desassistida de fitxers d'usuari quan aquests arriben per canals de distribució TIC
(propis de FidoNet). Així, de manera transparent, el sistema:
- Importa els nous fitxers.
- Actualitza les noves versions dels fitxers existents.
- Distribueix als diferents links els respectius fitxers d'acord amb les seves respectives configuracions.
EL programari BBBS
també contempla la gestió anterior de manera manual i assistida, a través dels menús propis del sistema en connexió local o telnet.
Problema
El programari BBBS
no contempla l'addició, ni manual ni automàtica, de nous fitxers si aquests no s'incorporen al sistema mitjançant els dos mètodes anteriors.
Imaginem alguns casos d'ús d'incorporacions:
- Col·leccions de fitxers (p. ex. una sèrie de capítols d'un còmic, a fitxer per capítol)
- Fitxers serialitzats (p. ex. un fitxer de gran mida comprimit en volums, a fitxer per volum)
- Conjunt de fitxers independents en una carpeta comuna (p. ex. les fotografies diàries que fa la NASA, a fitxer per foto)
En aquests casos, per a posar a disposició dels meus usuaris aquests fitxers, hauria d'optar entre aquestes dues opcions:
- Crear manualment un fitxer
.TIC
per a cada nou fitxer i importar-lo al sistema (això semi-automatitzaria bellugar el fitxer de la carpetainbound
a la destinació predefinida per l'àreaTIC
, i actualitzaria l'índex en el seu respectiu fitxerdescript.ion
1). - Bellugar el fitxer a l'ubicació apropiada i actualitzar el fitxer
descript.ion
que fa d'índex de fitxers en cada una de les carpetes de la base de fitxers delBBS
.
En tots dos casos, l'esforç és molt superior al benefici i, en el meu cas, justifica que tingui terabytes d'informació pendents d'incorporar a EOTB
.
Solució
He desenvolupat ook.sh
, un script en bash
que ha de donar resposta a aquesta necessitat, com a eina de suport a un SysOp
de BBBS
.
ook.sh
genera i/o manté els fitxers descript.ion
a partir de la descripció FILE_ID.DIZ
dels fitxers ZIP
que se l'hi indiquen, en una ubicació estàtica o recursiva.
Requisits
ook.sh
necessita que les utilitats unzip
, grep
, file
i stat
estiguin disponibles en el sistema per tal de poder efectuar les operacions necessàries.
Tanmateix, aquest script s'ha provat en un shell
bash
compatible, de manera que si fas servir un altre shell
pot ser necessari ajustar-lo en corcondànça. Això podria aplicar-se a Windows WSL
fent possible executar aquest script en una instal·lació de BBBS
sobre MS Windows
.
Funcionalitat:
-
Magic Number: Utilitzo la comanda
file
per a assegurar que un arxiu processable sigui realment un ZIP2, verificant si la sortida de la comanda conté'Zip archive data'
. -
Processament de ZIP: Per a cada arxiu
ZIP
, l'script verifica si ja està registrat en el seudescript.ion
. Si ho està, omet el seu processat. En cas de no estar-ho, extreu3 el contingut del fitxerfile_id.diz
(case-insensitive) i l'incorpora en eldescript.ion
, en la mateixa línia que el nom de l'arxiuZIP
, substituint els salts de línia amb@n
(codificació queBBBS
interpreta com a salt de línia). -
Recursivitat: Si s'especifica el paràmetre
-r
, l'script processa de manera recursiva tots els subdirectoris. Si no, només processa el directori actual. -
Processar un ZIP específic: Si s'especifica el paràmetre
-s
seguit del nom d'un arxiuZIP
, només es processa aquest arxiu. -
Resum: En finalitzar la seva execució, el script mostra un resum amb el nombre total de nous arxius
ZIP
processats i la mida total en bytes d'aquests arxius.
Execució:
En el path
on s'executa:
- Mode directori recursiu:
./ook.sh -r
- Mode ZIP específic:
./ook.sh -s arxiu.zip
- Mode directori actual (sense recursivitat):
./ook.sh
<EOF>
-
A títol informatiu en el repositori incloc l'especificació original del format
DESCRIPT.ION
deJP Software Inc.
. ↩︎ -
No contemplo el fet d'incorporar altres dels compressors suportats per
BBBS
perquèZIP
és el meu estàndard. ↩︎ -
No contemplo el processat de fitxers
ZIP
protegits amb paraula de pas perquèBBBS
ja gestiona la seguretat d'accés granular als continguts. ↩︎