Leí una
nota en
muylinux sobre el uso de
Electron para crear un cliente de escritorio de interfaces web con
nativefier. Se me figuro interesante para emplear.
$ aptitude update
$ aptitude install nodejs npm
$ sudo npm install nativefier -g
$ sudo ln -s /usr/bin/nodejs /usr/bin/node
$ mkdir /tmp/wiki
$ cd $_
$ nativefier -n eswiki es.wikipedia.org
$ ls -1FA
eswiki-linux-x64/
$ ls -1FA eswiki-linux-x64/
content_shell.pak
eswiki*
icudtl.dat
libffmpeg.so
libnode.so*
LICENSE
LICENSES.chromium.html
locales/
natives_blob.bin
resources/
snapshot_blob.bin
version
$ ./eswiki-linux-x64/eswiki
Con esto ya tenemos una ventanita con la vista de wikipedia
Pues sigamos con otras webs
$ nativefier -n esnews es.wikinews.org
$ nativefier -n wcommons commons.wikimedia.org
$ nativefier -n mxwiki mx.wikimedia.org
$ ls -FA1
esnews-linux-x64/
eswiki-linux-x64/
mxwiki-linux-x64/
wcommons-linux-x64/
$ du -hs *
104M esnews-linux-x64
104M eswiki-linux-x64
104M mxwiki-linux-x64
104M wcommons-linux-x64
¿Qué? ¿Cuántos megas? Analizando que contiene cada directorio y comparándolos he identificado que solo existe diferencia en el contenido del directorio resources/app
$ md5sum */*/* 2>/dev/null | sort | cut -d\ -f1 | uniq -c
4 026db20eb9f14ad800228c2f8cf076b6
4 03b11dc49fc2d42217879c2291340296
4 0f15d43cc55938a000de9c96d82263b1
$ md5sum */*/*/* 2>/dev/null | sort | cut -d\ -f1 | uniq -c
1 018fa69fbc5e49f08dc312b25872165d
1 332428d56785d857c0f02d4cba489ac2
1 53319562fc57e7269f1a787ab1d8cbf7
1 64b162a70352f1ee8c4a741e69ea494c
1 a20fc08726638a32ebe84c66fac0b258
1 a42fde1ea3bd4ba4dac1ad52e9a1893e
1 ab22d08f3326838e4f5490f4f2d7fbdf
1 b5ecc848c4f98fd0678dc9b434f6e6e7
1 b767bdadbacf5c6041239256181ff5f2
1 b862baf42092ce77dcc3289ea92e7cf7
1 be55ef6c199e8a94c48f3cf2030cba07
1 f026df95d4e616e6bdf0d4c990f1c100
$ md5sum */*/*/* 2>/dev/null | sort
018fa69fbc5e49f08dc312b25872165d wcommons-linux-x64/resources/app/nativefier.json
332428d56785d857c0f02d4cba489ac2 mxwiki-linux-x64/resources/app/package.json
53319562fc57e7269f1a787ab1d8cbf7 esnews-linux-x64/resources/app/icon.png
64b162a70352f1ee8c4a741e69ea494c wcommons-linux-x64/resources/app/package.json
a20fc08726638a32ebe84c66fac0b258 eswiki-linux-x64/resources/app/package.json
a42fde1ea3bd4ba4dac1ad52e9a1893e esnews-linux-x64/resources/app/package.json
ab22d08f3326838e4f5490f4f2d7fbdf eswiki-linux-x64/resources/app/icon.png
b5ecc848c4f98fd0678dc9b434f6e6e7 mxwiki-linux-x64/resources/app/nativefier.json
b767bdadbacf5c6041239256181ff5f2 esnews-linux-x64/resources/app/nativefier.json
b862baf42092ce77dcc3289ea92e7cf7 eswiki-linux-x64/resources/app/nativefier.json
be55ef6c199e8a94c48f3cf2030cba07 wcommons-linux-x64/resources/app/icon.png
f026df95d4e616e6bdf0d4c990f1c100 mxwiki-linux-x64/resources/app/icon.ico
$ more wcommons-linux-x64/resources/app/nativefier.json
{"name":"wcommons","targetUrl":"http://commons.wikimedia.org","counter":false,"w
idth":1280,"height":800,"showMenuBar":false,"fastQuit":false,"userAgent":"Mozill
a/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.266
1.102 Safari/537.36","nativefierVersion":"7.0.1","ignoreCertificate":false,"inse
cure":false,"flashPluginDir":null,"fullScreen":false,"maximize":false}
$ more eswiki-linux-x64/resources/app/nativefier.json
{"name":"eswiki","targetUrl":"http://es.wikipedia.org","counter":false,"width":1
280,"height":800,"showMenuBar":false,"fastQuit":false,"userAgent":"Mozilla/5.0 (
X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 S
afari/537.36","nativefierVersion":"7.0.1","ignoreCertificate":false,"insecure":f
alse,"flashPluginDir":null,"fullScreen":false,"maximize":false}
De nativefier.json solo cambia la url, package.json el nombre de la web y el icono en icon.*
Viendo esto, el mismo paquete sirve para todos basta cambiar la configuración del url. Junte en un solo paquete las configuraciones
$ cp -r eswiki-linux-x64/ wikis-nativefier/
$ mkdir wikis-nativefier/_perfiles
$ cp esnews-linux-x64/resources/app/icon.png wikis-nativefier/_perfiles/esnews-icon.png
$ cp esnews-linux-x64/resources/app/nativefier.json wikis-nativefier/_perfiles/esnews-nativefier.json
$ cp eswiki-linux-x64/resources/app/icon.png wikis-nativefier/_perfiles/eswiki-icon.png
$ cp eswiki-linux-x64/resources/app/nativefier.json wikis-nativefier/_perfiles/eswiki-nativefier.json
$ cp mxwiki-linux-x64/resources/app/icon.ico wikis-nativefier/_perfiles/mxwiki-icon.ico
$ cp mxwiki-linux-x64/resources/app/nativefier.json wikis-nativefier/_perfiles/mxwiki-nativefier.json
$ cp wcommons-linux-x64/resources/app/icon.png wikis-nativefier/_perfiles/wcommons-icon.png
$ cp wcommons-linux-x64/resources/app/nativefier.json wikis-nativefier/_perfiles/wcommons-nativefier.json
Me puse a jugar con un script que cambia esos archivos de acuerdo a un argumento.
$ more wikis-nativefier/wikis.sh
#!/bin/bash
cd /tmp/wiki/wikis-nativefier/
if [ -z "$1" ]
then
PERFIL=`cd _perfiles; ls -1 *.json | cut -d"-" -f1 | zenity --list --title="wiki nativefier" --text="¿Con qué perfil quieres ejecutar?" --column Perfiles 2>/dev/null`
else
PERFIL="$1";
fi
if [ -e resources/app/nativefier.json ]; then rm resources/app/nativefier.json; fi;
if [ -e resources/app/icon.png ]; then rm resources/app/icon.png; fi;
if [ -e resources/app/icon.ico ]; then rm resources/app/icon.ico; fi;
case "$PERFIL" in
eswiki)
cp _perfiles/eswiki-nativefier.json resources/app/nativefier.json
cp _perfiles/eswiki-icon.png resources/app/icon.png
;;
esnews)
cp _perfiles/esnews-nativefier.json resources/app/nativefier.json
cp _perfiles/esnews-icon.png resources/app/icon.png
;;
wcommons)
cp _perfiles/wcommons-nativefier.json resources/app/nativefier.json
cp _perfiles/wcommons-icon.png resources/app/icon.png
;;
mxwiki)
cp _perfiles/mxwiki-nativefier.json resources/app/nativefier.json
cp _perfiles/mxwiki-icon.ico resources/app/icon.ico
;;
*)
echo "Perfiles al momento:";
echo " eswiki";
echo " esnews";
echo " mxwiki";
echo " wcommons";
exit 1;
;;
esac
./eswiki
Al ejecutar el script
Ahora un solo paquete puede lanzar diferentes configuraciones
No hay comentarios:
Publicar un comentario