Creare un pacchetto di estensioni pronte per essere installate al volo

AGGIORNAMENTO: ho visto che su AMO hanno modificato il collegamento al file XPI dell’estensione facendolo puntare ad una pagina HTML, quindi è molto probabile che lo script non funzioni più. Appena ho tempo lo aggiorno.

Questo è un piccolo script BATCH per scaricare le estensioni da addons.mozilla.org e creare un pacchetto autoinstallante. Basterà trascinare il file XPI generato per installare tutte le estensioni scaricate (compatibilità permettendo).

Ecco le istruzioni per utilizzarlo.

Installazione

Dovrebbe essere sufficiente scaricare e scompattare il file 7z in una qualunque cartella del proprio HD ed eseguire il file install.bat al suo interno.
NOTA: Se si ha installato Gnuwin32 non è necessario eseguire il file install.bat, sarà necessario aggiungerlo al PATH di sistema in caso non lo fosse. Se si usa Gnuwin32 sicuramente si conosce come fare questa semplice operazione 🙂 .

Configurazione

Per dire allo script che estensioni scaricare fare come segue:

  • andare su AMO e cercare la pagina dell’estensione;
  • aprire il file default.mxpi con un editor di testo (ad esempio Crimson Editor) e incollarci gli URL delle pagine delle estensioni che si vogliono scaricare (il file è commentato per agevolarne la modifica);

NOTA: SE si sa usare il prompt dei comandi è possibile creare un file MXPI a piacere senza modificare il default.mxpi.
NOTA 2: purtroppo non è possibile inserire link ad estensioni che sono nella sand-box di AMO

Lanciare lo script (via facile)

Aprire l’explorer (non Internet 😛 ) e fare doppio clic sul file quickstart.bat.
Al termine dell’esecuzione, se tutto è andato a buon fine (assicurarsi che il firewall non rompa le scatole ad un processo di nome wget.exe), ci dovrebbe essere un file di nome multixpi.xpi. Installarlo come se si trattasse di una qualunque estensione (trascinarlo nel gestore dei componenti aggiuntivi o selezionarlo da File -> Apri).

Lanciare lo script (da prompt)

Aprire una sessione di cmd.exe, posizionarsi nella cartella in cui è stato scompattato il file 7z e dare il comando:

createmultixpi nome_vostro_file.mxpi

In teoria se sbagliate qualcosa dovrebbe apparire un messaggio di errore che spiega come risolvere il problema.
Come sopra, al termine dell’esecuzione, ci sarà un nuovo file di nome multixpi.xpi che contiene le estensioni impacchettate.

Avvertenze e problemi

Ogni volta che si esegue lo script il file multixpi.xpi viene ricreato, quindi quello generato in precedenza verrà perso. Se si vuole tenerne una copia, rinominarlo prima di eseguire di nuovo lo script.

Chi esegue lo script da prompt dei comandi vedrà un sacco di Warning di wget, non preoccupatevi il download viene effettuato lo stesso, il messaggio avvisa del fatto che non è in grado di verificare il certificato di Mozilla, ma successivamente lo ignora e procede con il download.

I problemi noti – che per il momento non mi interessa (o non è possibile) risolvere:

  • l’estensione deve essere hostata su AMO;
  • l’estensione non deve essere nella sand-box; (forse si può aggirare)
  • non funziona se si usa un proxy; (non dovrebbe essere difficile superarlo, ma a me non interessa)

Note finali

L’utilità dello script è quella di creare al volo dei pacchetti di estensioni, usando lo script da commandline si può creare al volo più file MXPI con gruppi di estensioni specifiche. Lo so, si può fare anche con Febe, ma a me non piace 😛 .
Ringrazio @miki64 per avermi insegnato il trucchetto del multi xpi package, @klades per averlo scovato e getgnuwin32 per l’idea di fare uno script autoinstallante.

Download

Il motivo per cui il download è di 1 MB è dovuto al fatto che al suo interno ci sono le DLL e gli eseguibili di tre tool del pacchetto Gnuwin32, (strong>sed, wget e zip, il mio script è di pochi Kb e nemmeno tanto curato 😛 .

A me servono solo questi tre applicativi per far funzionare lo script: sed per fare il parsing della pagina e trovare il collegamento diretto all’estensione, wget per scaricare le estensioni e zip per creare il file XPI; chi vuole può scaricare tutti i tool usando getgnuwin32.

Download: createmultixpi.7z

Applicazione per leggere il file 7z: 7-Zip
Dimensione: 1 MB
MD5 checksum:

ce83e0279fd65ef672953aeab5ff704f *createmultixpi.7z	

Technorati Tags: , , ,

16 Responses to “Creare un pacchetto di estensioni pronte per essere installate al volo”


  • Mozilla Firefox 3.0 Windows XP

    Effettivamente allo script automatizzato non ci avevo pensato. Bell’articolo collega 😛

  • Mozilla Firefox 3.0 Windows XP

    Grazie 😀
    Ciao
    Sandro

  • Mozilla Firefox 3.0.1 Windows XP

    Fatto tutto e mi torna:

    “sed” non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch.
    ERROR !!! It is impossible to run sed and the other gnuwin32 executables. Please install them before executing this script. Running the file install.bat in this folder could be solve this issue.

    Già lanciato install.bat.

  • Mozilla Firefox 3.0.3 Windows XP

    Quando hai eseguito l’install.bat non ti ha restituito errori ?

    Poi mi riguardo quel file e ti dico cosa c’è che non va.
    Hai eseguito il file dal prompt dei comandi o da Start -> Esegui ?
    Credo che install.bat (andando a memoria) impostass la variabile PATH del sistema a puntare agli eseguibili di sed e compagnia, purtroppo quella modifica è limitata alla sessione di cmd.exe in esecuzione (altrimenti bisognerebbe modificare il registro per renderla effettiva), quindi se mi hai lanciato install.bat non dal prompt potrebbe essere quello.
    Ciao

  • Mozilla Firefox 3.0.3 Windows XP

    Ok, ricordavo male.

    Se esegui install.bat ricevi un errore ?
    In %programfiles% hai una cartella GnuWin32 ?
    Cosa contiene la cartella ?
    Ciao

  • Mozilla Firefox 3.0.3 Windows XP

    No, nessun errore.
    Si, la cartella viene copiata.
    Contiene bin\tantialtrifile.
    Conta che il mio sistema e la cartella, sono in E:\.

  • Mozilla Firefox 3.0.3 Windows XP

    Uhm, strano…
    Nel file non ho usato percorsi assoluti proprio per evitare questo, ho usato invece la variabile di sistema %programfiles% in modo che puntasse sempre alla cartella programmi (indipendentemente dalla linuga di Windows e dal drive in cui è installato).

    La cartella viene copiata in E:\Programmi ?
    A questo punto, che valore ha la tua variabile di sistema %programfiles% ?
    Dopo che hai eseguito il file BAT e ricevuto l’errore, che valore ha la variabile PATH ?
    (basta scrivi PATH o SET nel prompt dei comandi)
    Ciao

  • Mozilla Firefox 3.0.3 Windows XP

    Si, la cartella viene correttamente copiata, e non ricevo nessun errore da install.bat.

  • Mozilla Firefox 3.0.3 Windows XP

    Si ok, l’install.bat non ti dà errore, io ero stato poco preciso, con BAT intendevo l’altro file, quello che crea il file XPI, che a quanto sembra non vede l’eseguibile di sed.
    Ciao

  • Mozilla Firefox 3.0.3 Windows XP

    Se eseguo quickstart.bat, si apre e si chiude una linea di comando, idem per createmultixpi.bat. Se invece, da cmd digito “createmultixpi default.mxpi”, torna l’errore di sed.

  • Mozilla Firefox 3.0.3 Windows XP

    Ok, quando, da prompt, esegui createmultixpi.bat, dopo l’eseczuzione quali sono i valori delle variabili PATH e PROGRAMFILES (usa SET) ?

    Altra cos, se scrivi – dopo aver eseguito da prompt createmultixpi.bat – sed e dai invio ti dà un errore ?

    Ciao

  • Mozilla Firefox 3.0.3 Windows XP

    PATH torna:
    Path=E:\WINDOWS\system32;E:\WINDOWS;E:\WINDOWS\System32\Wbem;E:\Programmi\ATI Te
    chnologies\ATI.ACE\Core-Static;E:\Programmi\QuickTime\QTSystem\

    E:\Documents and Settings\Ste_95\Desktop\createmultixpi\createmultixpi>sed
    “sed” non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch.

  • Mozilla Firefox 3.0.3 Windows XP

    Non so cosa dirti, la cartella dove ci sono gli eseguibili non viene aggiunta al PATH di sistema 😕

    Ascolta, prendi i file che ci sono in Gnuwin32\bin e copiali in dove c’è il file BAT, magari poi provo a pensare per quale strano motivo a te non modifichi il PATH.

    Magari prova a dare questa riga di comando:
    PATH=%PATH%;%PROGRAMFILES%\gnuwin32\bin
    e vedi se almeno dal prompt viene aggiunta correttamente al PATH di sistema.
    Ciao

  • Mozilla Firefox 3.0.3 Windows XP

    Specificando a mano il path, funziona!
    Grazie.

  • Mozilla Firefox 3.0.3 Windows XP

    Uhm, però è strano che la stessa riga in un file BAT non funzioni 😕 , anche perchè avevo testato la cosa prima di pubblicarla.
    Ora non mi viene in mente nulla ma ci penserò su.
    Ciao

  • Mozilla Firefox 3.0.3 Windows XP

    Ciao @te95,
    credo sia ufficiale che sono un coglione 😛

    La versione che ho uploadato ha questa riga:
    :: If you have already added this folder to you system variables, simply uncomment the following line
    :: PATH=%PATH%;%PROGRAMFILES%\gnuwin32\bin\

    ovviamente va tolto il commento (::).
    Ti ringrazio per aver provato, altrimenti io non me ne sarei mai accorto perchè io quella cartella la ho nel PATH del sistema e sed e gli altri tool me li vede sempre.
    Dopo aggiorno il file e faccio le correzioni.
    Ciao

Leave a Reply