it.po converted in UTF-8, changed some upper/lower convention in a more 'italian...
[midnight-commander.git] / vfs / extfs / README.it
blob028a4d2d065082da2902b18dcc00a2d9f056b5f3
1          Scrivere scripts per il vfs esterno del Midnight Commander
2         (Traduzione a cura di Marco Ciampa (C) GNU 2000 - it@li.org)
4 NOTA IMPORTANTE: ci possono essere ancora alcuni bachi in extfs. 
5 Buon divertimento.
7 A cominciare dalla versione 3.1 il Midnight Commander comprende il
8 cosiddetto extfs, che altri non è che un filesystem virtuale. Questo
9 sistema consente di creare molto semplicemente nuovi filesystem virtuali
10 per MC della GNU.
12 Tale lavoro è composto di due parti fondamentali:
14 Modifica di $(libdir)/extfs/extfs.ini.
15 Creazione di uno script shell/programma per gestire le richieste.
16 (Nota: $(libdir) dovrebbe essere sostituita con il percorso libdir 
17 corrente memorizzato quando configurato o compilato, come
18 /usr/local/lib/mc o /usr/lib/mc).
20 La prima è molto facile:
21 Assegnate un suffisso vfs. Per esempio, se avete un file .zip e vorreste
22 vedere cosa c'è dentro di esso, il percorso sarebbe
24 /qualsiasipercorso/my.zip#uzip/unpercorso/...
26 Poi basta aggiungere una linea nel file extfs.ini contenente solo quella
27 estensione. Se il vostro vfs non richiede file di lavoro, aggiungete
28 ':' alla fine del nome.
30 In questo esempio, .zip è il suffisso, ma è possibile chiamare vfs 'uzip'.
31 Perché? Beh, quello che fa vfs è essenzialmente UNzip. UN è troppo lungo
32 così è stato scelto U. Notare che in futuro un filesystem come zip potrà
33 esistere: prenderà l'intero albero e creerà un file zip da esso. Così
34 /usr:zip sarà un file zip contenente l'intero albero /usr.
36 La seconda potrebbe richiedere un po' di conoscenza di programmazione shell/c:
37 si deve creare un prefisso di programma (con i permessi di esecuzione) in
38 $(libdir)/extfs (nel nostro esempio $(libdir)/extfs/uzip).
41 * Comandi che dovrebbero essere implementati nello script shell
42 ---------------------------------------------------------------
44 Ritorno di zero dallo script a completamento avvenuto del comando, 
45 altrimenti diverso da zero per fallimento o comando non supportato.
47 $libdir/extfs/prefix command [arguments]
49 * Comando: list nomearchivio
51 Questo comando dovrebbe elencare il contenuto completo dell'archivio nel seguente 
52 formato (elenco ls -l un po' modificato)
54 AAAAAAA NNN OOOOOOOO GGGGGGGG SSSSSSSS DATETIME [PATH/]FILENAME [-> [PATH/]FILENAME[/]]]
56 dove (le cose in [] sono opzionali):
58 AAAAAAA  è la stringa permessi come in ls -l
59 NNN      è il numero di collegamenti
60 OOOOOOOO è il proprietario (sia UID che nome)
61 GGGGGGGG è il gruppo (sia GID che nome)
62 SSSSSSSS è la dimensione del file
63 FILENAME è il nome del file
64 PATH     è il percorso dalla radice dell'archivio senza la slash iniziale (/)
65 DATETIME ha uno dei seguenti formati:
66             Mon DD hh:mm, Mon DD YYYY, Mon DD YYYY hh:mm, MM-DD-YY hh:mm
68             dove Mon è il nome del mese a tre caratteri in inglese, DD giorno
69             1-31, MM mese 01-12, YY anno a due cifre, YYYY anno a quattro cifre, 
70             hh ore e mm minuti.
72 Se la -> [PATH/]FILENAME parte è presente, significa:
74 Se i permessi cominciano con l (elle) allora è il nome al quale il 
75 collegamento simbolico punta. Se questo percorso comincia con un prefisso
76 vfs di MC allora è un collegamento simbolico verso l'altro filesystem virtuale
77 (se si vuole specificare un percorso dalla radice locale, si usa local:/percorso
78 invece di /percorso perchè /percorso significa dalla radice dell'archivio
79 elencato).
81 Se i permessi non cominciano con l ma un numero di collegamenti maggiore di
82 uno allora significa che questo file dovrebbe essere collegato 'hard' con
83 l'altro file. 
85 * Comando: copyout nomearchivio nomefilememorizzato estraea
87 Questo dovrebbe estrarre dall'archivio nomearchivio nel file di
88 nome nomefilememorizzato (possibilmente con percorso se non collocato
89 nella radice dell'archivio [questo è sbagliato. l'attuale extfs toglie il
90 percorso! -- pavel@ucw.cz]) nel file estraea.
92 * Comando: copyin nomearchive nomefilememorizzato filesorgente
94 Questo dovrebbe aggiungere a nomearchivio il filesorgente con
95 nome nomefilememorizzato nell'archivio.
97 Nota importante: nomearchivio negli esempi suddetti può non avere
98 l'estensione che ci si aspetta, come potrebbe succedere che il nomearchivio
99 sia qualcosa del tipo /tmp/f43513254 o qualsiasi altra cosa.
100 Ad alcuni archiviatori non piace ciò per cui dovrò trovare qualche
101 artifizio.
103 * Comando: rm nomearchivio nomefilememorizzato
105 Questo dovrebbe rimuovere il nomefilememorizzato da nomearchivio.
107 * Comando: mkdir nomearchivio nomedir
109 Questo dovrebbe creare una nuova directory chiamata nomedir dentro
110 nomearchivio.
112 * Comando: rmdir nomearchivio nomedir
114 Questo dovrebbe rimuovere un'esistente directory nomedir. Se la directory
115 non è vuota, mc la cancellerà ricorsivamente (possibilmente avvertendo).
117 * Comando: run
119 Nondocumentato :-)
121 ---------------------------------------------------------
123 Non dimenticate di impostare questo file come eseguibile (con chmod 755 
124 QuestoFile per esempio)
126 Per una struttura generale di eseguibile vedere i filesystems simili
127 ai vostri.
129 ---------------------------------------------------------
131 Se nel costruire queste routine verranno fatti degli errori mc non mostrerà
132 righe di stampa maldefinite. Questo può fuorviare il programmatore nella
133 ricerca dei difetti. Visto che questa routine è uno script shell eseguibile
134 essa può essere lanciata dalla riga di comando indipendentemente da mc ed il
135 risultato mostrato in console o redirezionato in un file.
137 * Messa in uso
138 ----------------------------------------------------------
139 Il file .mc.ext nella directory home e nella directory utente di mc 
140 (normalmente /usr/local/lib/mc), contiene le istruzioni per le operazioni 
141 sui files a seconda dell'estensione. E' ben documentato in altri file in 
142 questa distribuzione perciò qui si darà solo qualche nota specificatamente
143 sull'uso del File System Virtuale che si è appena creato.
145 Vi sono voci in .mc.ext che definiscono alcune operazioni che possono essere
146 svolte su un file da un pannello di mc. Tipicamente sono annotate con un
147 simbolo di cancelletto ed un'estensione come questa:
149 # zip
151 Vi deve essere un modo per trovare il file per estensione così la
152 prossima linea fa ciò. Essenzialmente dichiara: "identifica la stringa ".zip"
153 o (|) ".ZIP" alla fine del nome del file:
155 regex/\.(zip|ZIP)$
157 Le operazioni seguono. Esse devono essere indentate da almeno uno spazio oppure
158 un tabulatore. In particolare l'operazione di apertura  (Open) userà ora il nuovo
159 file system virtuale per fare cd su di esso come in questo:
161    Open=%cd zip:%d/%p
163 Questa è la linea usata quando un file viene evidenziato in un pannello e
164 l'utente preme <Invio>. Il contenuto dell'archivio dovrebbe essere come
165 se si fosse in una vera directory e potesse essere manipolata in tal modo.
166 Il resto della linea riguarda l'uso del tasto di Vista F3:
168    View=%view{ascii} unzip -v %f
170 con un'icona opzionale per X:
172    Icon=zip.xpm
174 e con un'operazione per estrarre il contenuto del file preso da una selezione
175 file a menu:
177    Extract=unzip %f '*'
179 Questo è solo un esempio. La voce corrente per i file .zip ha una selezione
180 menu di 'Unzip' che potrebbe essere usata al posto di 'Extract'. Cosa va qui
181 dipende da quali voci si hanno o si aggiungono al menu di sistema ed inoltre
182 c'è ancora un particolare. La somma di questo è nella voce .mc.ext:
184 # zip
185 regex/\.(zip|ZIP)$
186    Open=%cd zip:%d/%p
187    View=%view{ascii} unzip -v %f
188    Icon=zip.xpm
189    Extract=unzip %f '*'
191 Aggiungere una voce come questa al file .mc.ext nella directory home dell'utente.
192 Se volete che altri la vedano, aggiungetela nel file mc.ext nella directory di
193 sistema di mc spesso in /usr/local/lib/mc/mc.ext. Notare che questo file non
194 ha un punto iniziale.
196 Una volta che tutto questo è fatto e le cose sono al loro posto, uscite da mc
197 se lo state usando e fatelo ripartire dimodoche possa prendere le nuove
198 impostazioni.
200 Questo è tutto. La parte più dura è fare una funzione di elenco che ordini
201 l'uscita di un comando di listato di sistema e lo converta in un formato che
202 permetta ad mc di poterlo usare. Attualmente viene usato awk (o gawk) perché
203 quasi tutti i sistemi ne sono provvisti. Si può usare anche un'altro linguaggio
204 di scripting come il perl, se è disponibile.