[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [riminilug-general] AFTA
On Wed, Mar 10, 2004 at 04:16:10PM +0100, KiyuKo wrote:
> > qualcosa cosi' a caso dando un'occhiata veloce:
>
> se e' bastata solo un'occhiata veloce per trovare tutti questi errori... mi
> immagino cosa salterebbe fuori da un'analisi approfondita!
>
> > = Makefile
> > * prefix (meglio se PREFIX) ma poi non lo usi! (e cio' e' male)
>
> lo uso per copiare lo scirpt (cp afta $(prefix);\)
>
> > * docdir e mandir dovrebbero essere in funzione di PREFIX
>
> come? spiegati meglio.
>
> > = afta
> > * si aspetta di trovare i file che gli servono in /etc/afta (anziche'
> > PREFIX/etc/afta vedi sopra)
>
> forse sono io che ho capito male 'sta storia del prefix... se ce la fai a
> spiegarmela per esteso... tra l'altro ho notato poco fa che cerca il file
> afta.conf nella stessa directory dal quale e' eseguito (mi serviva per i
> test), e non in /etc/afta/afta.conf come dovrebbe, e ho corretto.
prendo da un ./configure qualsiasi (di lftp in questo caso ma non cambia
nulla)
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
e sotto:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
come vedi PREFIX serve per definire la directory "root" per il
programma, cioe' e' bene non fare assunzioni su quale sia la root. va da
se che afta deve avere anche lui i path impostati correttamente secondo
$PREFIX
>
> > * crea i suoi file in ~ (o li crei nella directory corrente, o
> > specifichi un'opzione per salvarli altrove o crei una directory
> > ~/.afta )
>
> sono solo files temporanei, che dovrebbero (dico dovrebbero perche', in
> effetti, non succede :) essere eliminati subito dopo aver dato
> # afta track some_package
> per liberare spazio, ma in effetti stavo valutando la possibilita' di tenere
> afta.track e rinominarlo in afta.prepare, di modo da poter evitare di fare
> # afta prepare
> la volta successiva (a meno di modifiche nel sistema, ovviamente), e credo che
> la tua idea di creare una cartella .afta nella home sia molto buona.
se sono file temporanei vanno in /tmp e puoi usare mktemp per generare
un nome a caso e non predicibile, se _non_ sono temporanei vanno in
.afta (hai mai visto un programma creare file visibili (senza il .
davanti) nella tua home e lasciarli li?
>
> > * AFTA_PATH e' un po' fuorviante potrebbe essere il PATH (inteso nel
> > senso classico del termine) che usa afta, io cambierei tipo in
> > AFTA_DIRS
>
> in effetti e' il corrispettivo del classico PATH, solo che viene usato da
> AFTA, percio' il nome piu' adatto mi sembrava proprio AFTA_PATH...
PATH serve per indicare alla shell quali sono le directory con i file
eseguibili, per non stare ogni volta a dire /bin/ls, AFTA_PATH se ho
capito bene sono le directory che afta cerca i file che sono cambiati,
quindi non ha lo stesso significato... comunque e' stata la mia prima
impressione vedendo AFTA_PATH che fosse tipo il PATH settato da afta
quando viene lanciato
>
> > * proteggi piu' che puoi tra "" (tipo:
> > 66 if echo -n $line | grep / > /dev/null
> > cambialo in if echo -n "$line" eccecc e anche i vari rm)
>
> per quale motivo? me lo puoi spiegare? in effetti devo ammettere che di bash
> scripting non me ne intendo molto (e si vede :)...
perche' vengono mantenuti i caratteri speciali nella variabile, in piu'
rm "$variabile" passa un solo argomento a rm mentre rm $variabile ne
passa tanti quanti sono le parole in $variabile, comunque ti rimando a
http://www.tldp.org/LDP/abs/html/ che e' sempre un'OTTIMA lettura. in
particolare il capitolo 5 della parte 2
[nota: all'inizio di afta supponi che /bin/sh sia bash, il che non e'
sempre vero... quindi o cambi in /bin/bash oppure ti accerti che non ci
siano "bashismi" (cioe' feature particolari solo a bash)]
>
> > * aggiungerei anche un'opzione --dry-run tipo diff per vedere cosa
> > succederebbe se...
>
> magari in futuro: per ora voglio completare almeno quelle previste dall'help,
> e ci voraa' gia' tempo per quelle...
>
> > altro mi verra' in mente, spero di esserti stato d'aiuto per ora :)
>
> altroche'! e' esattamente il genere di aiuto di cui avevo bisogno... grazie! e
> giusto per dimostrare che sono un tipo onesto, ti voglio offrire un'altra
> possibilita' per aiutarmi: perche' se scrivo
>
> if . afta.conf 2> /dev/null
> echo " Done."
> else
> echo " Error."
> exit 1
> fi
>
> (questo non c'e' nella versione 0.0.3, ci sto lavorando sopra adesso) non fa
> quello che dovrebbe, cioe' stampare " Done." se il sourcing di afta.conf ha
> avuto successo oppure stampare " Error." e uscire con codice 1 in caso
> contrario?
ti conviene usare:
source afta.conf 2>/dev/null && echo "Done."
oppure se vuoi segnalare un errore:
source afta.conf 2>/dev/null || echo "error sourcing afta.conf"
comunque a me l'if funziona :)
if source afta.conf 2>/dev/null
then
echo "ok, $AFTA_PATH"
else
echo "error"
fi
ciao, filippo
--
Filippo Giunchedi
GNU/PG key: 6B79D401
Random signature below:
I always keep the Titanic in mind when I talk about security or safety,
meaning that nothing is fully secure.