Un possibile script di lancio per Linux, con quelle caratteristiche, può essere questo:
#!/bin/sh
# Questa strana riga serve per evitare problemi con i nomi
# con spazi nel successivo "select"
# Per saperne di più aprire "man bash" e cercare IFS
IFS="
"
# Vengono settate le variabili usate nello script
PROFILE=default
MOZILLA=firefox
MOZ_DIR=./Firefox
MOZ_PROFILE_PATH="./Profiles/$PROFILE"
# Questa è l'unica che va usata come variabile d'ambiente,
# quindi usiamo "export"
export MOZ_PLUGIN_PATH=`pwd`/Plugins
# Test sull'esistenza dell'eseguibile
if [ ! -e "$MOZ_DIR/$MOZILLA" ]
then
echo "$MOZ_DIR/$MOZILLA non trovato, controllare le impostazioni"
exit
fi
# Test sull'esistenza della directory del profilo di default,
# se non c'è viene creata
test -e "$MOZ_PROFILE_PATH" || mkdir "$MOZ_PROFILE_PATH"
# Contiamo le directory dentro la directory "Profiles":
# se sono più di una chiediamo all'utente
# quale profilo vuole avviare, altrimenti
# facciamo partire quello di default
numOfProf=`ls ./Profiles | wc -l`
if [ $numOfProf -gt 1 ]
then
echo -e "\nMANAGER DEI PROFILI DI FIREFOX PORTATILE\n"
echo -e "\nProfili disponibili:\n"
PS3="Scegliere quale avviare:"
select myprofile in `ls ./Profiles`
do
test $myprofile && break;
echo "Profilo inesistente, riprovare\n"
done
else
myprofile=$MOZ_PROFILE_PATH
fi
# Se c'è, viene cancellato il file compreg.dat
# del profilo che stiamo lanciando
rm -f "./Profiles/$myprofile/compreg.dat" 2>/dev/null
echo -e "\nAvvio di Firefox Portatile con il profilo $myprofile"
# Finalmente lanciamo l'eseguibile.
# Con la variabile speciale $@ vengono passati a Firefox
# tutti i parametri che sono stati passati a questo script.
./$MOZILLA $@ -profile "./Profiles/$myprofile"
Tieni conto che MOZ_NO_REMOTE non serve, perchè su Linux si possono sempre aprire più profili in contemporanea.
Questo script controlla quanti profili ci sono disponibili, se ce n'è uno lo lancia, se no chiede all'utente quale lanciare.
Un piccolo profilemanager per creare e cancellare profili potrebbe essere questo:
#!/bin/sh
PS3="Scegliere l'azione da eseguire: "
echo -e "\nMANAGER DEI PROFILI DI FIREFOX PORTATILE\n"
select action in "Creare un nuovo profilo" "Cancellare un profilo esistente"
do
if [ "$REPLY" -eq 1 ] || [ "$REPLY" -eq 2 ]; then break; fi;
done
case $REPLY in
1)
echo
echo -n "Indicare il nome del nuovo profilo: "
read name
mkdir "./Profiles/$name"
;;
2)
echo -e "\nProfili esistenti:\n"
ls -1 Profiles
echo
echo -n "Indicare il nome del profilo da cancellare: "
read name
rm -rf "./Profiles/$name"
;;
esac
Per lanciare va poi usato l'altro.
Non li ho testati realmente sulla chiavetta, quindi magari dimmi se vanno e/o come andrebbero migliorati.
Per quanto riguarda MAC OSX ne so quanto te: il "cuore" è *nix quindi, la bash dovrebbe essere la stessa, ma siamo sempre sulla teoria...