Bash-script per generar un fitxer 'descript.ion' a partir de la descripció 'FILE_ID.DIZ' d'un fitxer 'ZIP'. Funciona per a un fitxer 'ZIP' concret, o pels 'ZIP' dins un camí recursiu.
Go to file
Enric Lleal Serra f58ade500c Actualizar README.md
La primera versió del document tenia un altre nom d'script. Ara ja té el correcte.
2024-08-29 15:42:25 +02:00
LICENSE Initial commit 2024-08-27 05:55:13 +00:00
README.md Actualizar README.md 2024-08-29 15:42:25 +02:00
description.txt Versió inicial 2024-08-29 14:37:59 +02:00
ook.sh Versió inicial 2024-08-29 14:37:59 +02:00

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 carpeta inbound a la destinació predefinida per l'àrea TIC, i actualitzaria l'índex en el seu respectiu fitxer descript.ion1).
  • 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 del BBS.

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 seu descript.ion. Si ho està, omet el seu processat. En cas de no estar-ho, extreu3 el contingut del fitxer file_id.diz (case-insensitive) i l'incorpora en el descript.ion, en la mateixa línia que el nom de l'arxiu ZIP, substituint els salts de línia amb @n (codificació que BBBS 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 arxiu ZIP, 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>


  1. A títol informatiu en el repositori incloc l'especificació original del format DESCRIPT.ION de JP Software Inc.. ↩︎

  2. No contemplo el fet d'incorporar altres dels compressors suportats per BBBS perquè ZIP és el meu estàndard. ↩︎

  3. No contemplo el processat de fitxers ZIP protegits amb paraula de pas perquè BBBS ja gestiona la seguretat d'accés granular als continguts. ↩︎