Página 2 de 13

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 28 Feb 2016, 22:31
por Lortropic
Todas las líneas que se te queja antes son las líneas en blanco. Justo la 2, la 5... es posible que al editarlo lo hicieras en Windows, y tal vez con bloc de notas? No me extrañaría que se quejara por el salto de línea (al fin y al cabo, es raro que se queje en líneas en blanco).

Por otro lado, lo de que se ejecute al iniciar el SO por poder se podría. Eso ya es linux, por lo que podrías encontrar vía google múltiples formas de hacerlo.

Yo no tengo OpenElec, pero hay sistemas que permiten poner un cron de "en boot" o algo así (para que se ejecute al inicio). Otros tiran de poner el script en las carpetas de los runlevels y otros pueden usar archivos ".service" para systemd que se pueden poner también para que se ejecuten al inicio del SO (si, imagino que todo esto te suena a chino)

Al no tener OpenElec no se cual será la forma más habitual, pero imagino que una búsqueda "execute script on boot openelec" o "execute program on boot openelec" o cambiar openelec por linux te dará algún método que te sirva... aunque claro, antes te tiene que funcionar ejecutándolo normal.

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 29 Feb 2016, 20:47
por hav
¿Puede que el problema esté en la versión de openelec (6.0.1)?

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 01 Mar 2016, 13:40
por kampanita
El problema no esta en la versión de openelec

Yo creo que el problema esta en los saltos de linea y demas, al cortar pegar el script no lo estas haciendo bien.

Utiliza Ultraedit32 para editar el archivo en Windows, cuando te diga si lo quieres convertir a formato DOS pon que NO.

Lo que haria en tu caso seria pasar MI SCRIPT ( tal cual el zip ) por sftp ( usando winscp por ejemplo ) a la raspi y luego descomprime alli el .zip



Por otro lado:
Si se puede hacer que se ejecute al inicio.

Para ello hay que ponerlo en /storage/.config/autostart.sh

dentro de autostart.sh habria que poner :

( sh /storage/scripts/upgrade.sh ) &

de manera que se ejecute en "background" y no te afecte al arranque de la maquina.

He hecho alguna pequeña mejora como sacar el log a un fichero ...

Código: Seleccionar todo

#!/bin/bash

now=$(date +'%d/%m/%Y %R')
echo ${now} Inicia el proceso. > /storage/scripts/upgrade.log

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"
URL="https://codeload.github.com/tvalacarta/pelisalacarta/zip/master"

SIZE=$(curl -sI $URL | grep Content-Length | cut -d ' ' -f 2)

echo El fichero de git pesa: $SIZE >> /storage/scripts/upgrade.log

SIZE_2=$(ls -la $FILE_DIR/pelis.zip.old | awk '{ print $5}')


echo El fichero local pesa: $SIZE_2 >> /storage/scripts/upgrade.log


 if [ $SIZE -ne $SIZE_2 ]; then

  echo Nos traemos el fichero >> /storage/scripts/upgrade.log
  curl -o ${FILE_DIR}/pelis.zip $URL

  echo Unzip del fichero >> /storage/scripts/upgrade.log
  unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d ${FILE_DIR} > /dev/null

  echo copia el plugin >> /storage/scripts/upgrade.log
  cp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/addons/plugin.video.pelisalacarta/ > /dev/null

  echo renombra zip origen >> /storage/scripts/upgrade.log
  mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old

  echo borramos directorio descomprimido >> updgrade.log
  rm -rf ${FILE_DIR}/pelisalacarta-master
 fi

now=$(date +'%d/%m/%Y %R')
echo ${now}  proceso acabado >> /storage/scripts/upgrade.log
cat /storage/scripts/upgrade.log
Por cierto, e importante, se me olvidó comentar que si tenéis cambiar los permisos a los ficheros que no queráis que os sobreescriba ( como los user/passwd de las cuentas premium ...si tenéis)

Código: Seleccionar todo

chmod 666 nombre_de_fichero
.., yo como no tengo, me da igual que me sobreescriba eso...

Para ejecutarlo..

Código: Seleccionar todo

sh /storage/scripts/upgrade.sh
el fichero comprimido que os dejado, lo he convertido a formato "windows" para que no tengais problema con los saltos de linea. Pasadlo a la raspi por sftp con winscp por ejemplo.

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 01 Mar 2016, 17:40
por hav
Muchas gracias, pero parece que no quiere funcionar.

OpenELEC:~ # sh /storage/scripts/upgrade.sh
: not foundripts/upgrade.sh: line 2:
: not foundripts/upgrade.sh: line 5:
: not foundripts/upgrade.sh: line 8:
: not foundripts/upgrade.sh: line 10:
: not foundripts/upgrade.sh: line 12:
/pelis.zip.old: No such file or directoryge
: not foundripts/upgrade.sh: line 14:
: not foundripts/upgrade.sh: line 15:
: not foundripts/upgrade.sh: line 17:
: not foundripts/upgrade.sh: line 18:
/storage/scripts/upgrade.sh: line 39: syntax error: unexpected end of file (expecting "then")
OpenELEC:~ #

He pasado tu .zip, por sftp (Filezilla), directamente a la carpeta /storage/scripts
luego he hecho un unzip y una vez que tenía el upgrade.sh le he otorgado permisos (775)
al ejecutarlo (sh /storage/scripts/upgrade.sh) vuelve a dar los errores de línea.

La verdad es que no alcanzo a entender el porqué, pero no me funciona.

El caso es que si copio el contenido de upgrade.sh y, a traves de putty, lo pego, se ejecuta perfectamente:

OpenELEC:~ # #!/bin/bash
OpenELEC:~ #
OpenELEC:~ # now=$(date +'%d/%m/%Y %R')

FILE_DIR="/storage/scripts"
URL="https://codeload.github.com/tvalacarta/ ... zip/master"

SIZE=$(curl -sI $URL | grep Content-Length | cut -d ' ' -f 2)

echo El fichero de git pesa: $SIZE >> /storage/scripts/upgrade.log

SIZE_2=$(ls -la $FILE_DIR/pelis.zip.old | awk '{ print $5}')


echo El fichero local pesa: $SIZE_2 >> /storage/scripts/upgrade.log


if [ $SIZE -ne $SIZE_2 ]; then

echo Nos traemos el fichero >> /storage/scripts/upgrade.log
curl -o ${FILE_DIR}/pelis.zip $URL

echo Unzip del fichero >> /storage/scripts/upgrade.log
unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d $ {FILE_DIR} > /dev/null

echo copia el plugin >> /storage/scripts/upgrade.log
cp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/ad dons/plugin.video.pelisalacarta/ > /dev/null

echo renombra zip origen >> /storage/scripts/upgrade.log
mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old

OpenELEC:~ # echo ${now} Inicia el proceso. > /storage/scripts/upgrade.log
OpenELEC:~ #
OpenELEC:~ # FILE_DIR="/storage/scripts"
OpenELEC:~ # URL="https://codeload.github.com/tvalacarta/ ... /zip/maste
r"
OpenELEC:~ #
OpenELEC:~ # SIZE=$(curl -sI $URL | grep Content-Length | cut -d ' ' -f 2)

now=$(date +'%d/%m/%Y %R')
echo ${now} proceso acabado >> /storage/scripts/upgrade.log
cat /storage/scripts/upgrade.logOpenELEC:~ #
OpenELEC:~ # echo El fichero de git pesa: $SIZE >> /storage/scripts/upgrade.log
OpenELEC:~ #
OpenELEC:~ # SIZE_2=$(ls -la $FILE_DIR/pelis.zip.old | awk '{ print $5}')
ls: /storage/scripts/pelis.zip.old: No such file or directory
OpenELEC:~ #
OpenELEC:~ #
OpenELEC:~ # echo El fichero local pesa: $SIZE_2 >> /storage/scripts/upgrade.log
OpenELEC:~ #
OpenELEC:~ #
OpenELEC:~ # if [ $SIZE -ne $SIZE_2 ]; then
>
> echo Nos traemos el fichero >> /storage/scripts/upgrade.log
> curl -o ${FILE_DIR}/pelis.zip $URL
>
> echo Unzip del fichero >> /storage/scripts/upgrade.log
> unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d
${FILE_DIR} > /dev/null
>
> echo copia el plugin >> /storage/scripts/upgrade.log
> cp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/
addons/plugin.video.pelisalacarta/ > /dev/null
>
> echo renombra zip origen >> /storage/scripts/upgrade.log
> mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old
>
> echo borramos directorio descomprimido >> updgrade.log
> rm -rf ${FILE_DIR}/pelisalacarta-master
> fi
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 33.1M 0 33.1M 0 0 762k 0 --:--:-- 0:00:44 --:--:-- 1176k
OpenELEC:~ #
OpenELEC:~ # now=$(date +'%d/%m/%Y %R')
OpenELEC:~ # echo ${now} proceso acabado >> /storage/scripts/upgrade.log
OpenELEC:~ # cat /storage/scripts/upgrade.log
01/03/2016 17:30 Inicia el proceso.
El fichero de git pesa:
El fichero local pesa:
Nos traemos el fichero
Unzip del fichero
copia el plugin
renombra zip origen
01/03/2016 17:31 proceso acabado

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 03 Mar 2016, 17:18
por hav
Bueno, por fin he logrado que funcione. Los pasos que he seguido han sido estos:

Conecto a la raspberry mediante putty (IP de la raspberry y como puerto el 22). En openelec el usuario es root y el pass: openelec
1.- Creo el script:
cd $HOME && touch upgrade.sh && chmod +x upgrade.sh

2.- edito el script:
nano /storage/upgrade.sh

3.- Pego en él (botón derecho) el contenido de este enlace: viewtopic.php?f=6&t=7339&start=10#
Ha de quedar así:
#!/bin/bash

now=$(date +'%d/%m/%Y %R')
echo ${now} Inicia el proceso. > /storage/scripts/upgrade.log

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"
URL="https://codeload.github.com/tvalacarta/ ... zip/master"

SIZE=$(curl -sI $URL | grep Content-Length | cut -d ' ' -f 2)

echo El fichero de git pesa: $SIZE >> /storage/scripts/upgrade.log

SIZE_2=$(ls -la $FILE_DIR/pelis.zip.old | awk '{ print $5}')


echo El fichero local pesa: $SIZE_2 >> /storage/scripts/upgrade.log


if [ $SIZE -ne $SIZE_2 ]; then

echo Nos traemos el fichero >> /storage/scripts/upgrade.log
curl -o ${FILE_DIR}/pelis.zip $URL

echo Unzip del fichero >> /storage/scripts/upgrade.log
unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d ${FILE_DIR} > /dev/null

echo copia el plugin >> /storage/scripts/upgrade.log
cp -rf ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/addons/plugin.video.pelisalacarta/ > /dev/null

echo renombra zip origen >> /storage/scripts/upgrade.log
mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old

echo borramos directorio descomprimido >> updgrade.log
rm -rf ${FILE_DIR}/pelisalacarta-master
fi

now=$(date +'%d/%m/%Y %R')
echo ${now} proceso acabado >> /storage/scripts/upgrade.log
cat /storage/scripts/upgrade.log

4. Modifico la línea según la ruta deseada:
FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"
Para que quede así:
FILE_DIR="/storage/scripts"

5. Guardo los cambios (ctrl+x), cierro el script (“y” luego enter) y creo la carpeta “scripts”:
mkdir /storage/scripts

6. Muevo el script a la carpeta donde quiero que esté:
mv /storage/upgrade.sh /storage/scripts/upgrade.sh

7. Pruebo que el script funcione adecuadamente:

sh /storage/scripts/upgrade.sh

8. Edito autostar.sh:
nano /storage/.config/autostart.sh

9. Pego en él (botón derecho) la siguiente línea (con ella conseguimos que se ejecute el script cuando arranque el O. S.):
( sh /storage/scripts/upgrade.sh ) &
10. Para los que no suelen apagar la raspberry, puede interesarles que el script se ejecute diariamente a una hora en concreto:
crontab -e
y luego lo modificamos hasta dejarlo así (tal y como está, se ejecutaría todos los días a las 5) viewtopic.php?f=6&t=7339#
# # Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
0 5 * * * sh /storage/scripts/upgrade.sh

11. Guardo los cambios (ctrl+x) y cierro el script (“y” luego enter)

Para comprobar los cambios realizados en pelisalacarta (es necesario que pelis.zip se haya sustituido):
ls -ltr /storage/.kodi/addons/plugin.video.pelisalacarta/

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 03 Mar 2016, 19:33
por hav
Me sale una denegación de permiso en una de las líneas del script, pero no sé muy bien a qué se refiere. No sé si realmente se está ejecutando como es debido:

inflating: pelisalacarta-master/python/version-xbmc-11-eden/core/config.py
creating: pelisalacarta-master/python/version-xbmc-12-frodo/
inflating: pelisalacarta-master/python/version-xbmc-12-frodo/addon.xml
creating: pelisalacarta-master/python/version-xbmc-12-frodo/core/
inflating: pelisalacarta-master/python/version-xbmc-12-frodo/core/config.py
creating: pelisalacarta-master/python/version-xbmc-13-gotham/
creating: pelisalacarta-master/python/version-xbmc-13-gotham/core/
inflating: pelisalacarta-master/python/version-xbmc-13-gotham/core/config.py
/storage/scripts/upgrade.sh: line 37: pelisalacarta-master/python/main-classic/L ICENSE: Permission denied
BusyBox v1.24.1 (2016-02-04 00:35:40 CET) multi-call binary.

Usage: cp [OPTIONS] SOURCE... DEST

Copy SOURCE(s) to DEST

-a Same as -dpR
-R,-r Recurse
-d,-P Preserve symlinks (default if -R)
-L Follow all symlinks
-H Follow symlinks on command line
-p Preserve file attributes if possible
-f Overwrite
-i Prompt before overwrite
-l,-s Create (sym)links
/storage/scripts/upgrade.sh: line 37: /storage/.kodi/addons/plugin.video.pelisal acarta/: Permission denied
03/03/2016 19:27 Inicia el proceso.
El fichero de git pesa:
El fichero local pesa:
Nos traemos el fichero
Unzip del fichero
copia el plugin
renombra zip origen
03/03/2016 19:28 proceso acabado

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 05 Mar 2016, 09:00
por kampanita
donde pone " cp -r" pon "cp -rf"

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 05 Mar 2016, 10:30
por hav
kampanita escribió:donde pone " cp -r" pon "cp -rf"
Hecho, pero me sigue saliendo esto:

inflating: pelisalacarta-master/python/version-xbmc-12-frodo/addon.xml
inflating: pelisalacarta-master/python/version-xbmc-12-frodo/core/config.py
inflating: pelisalacarta-master/python/version-xbmc-13-gotham/core/config.py
/storage/scripts/upgrade.sh: line 37: pelisalacarta-master/python/main-classic/LICENSE: Permission denied
BusyBox v1.24.1 (2016-02-29 21:05:41 CET) multi-call binary.

Usage: cp [OPTIONS] SOURCE... DEST

Copy SOURCE(s) to DEST

-a Same as -dpR
-R,-r Recurse
-d,-P Preserve symlinks (default if -R)
-L Follow all symlinks
-H Follow symlinks on command line
-p Preserve file attributes if possible
-f Overwrite
-i Prompt before overwrite
-l,-s Create (sym)links
/storage/scripts/upgrade.sh: line 37: /storage/.kodi/addons/plugin.video.pelisalacarta/: Permission denied
05/03/2016 10:24 Inicia el proceso.
El fichero de git pesa: 34766452
El fichero local pesa: 0
Nos traemos el fichero
Unzip del fichero
copia el plugin
renombra zip origen

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 07 Mar 2016, 17:32
por kampanita
puedes poner lo que te sale si ejecutas el script como

Código: Seleccionar todo

sh -x /storage/scripts/upgrade.sh
¿¿??

ahi se deberia ver que esta pasando, en principio algun archivo que tienes con permisos de solo lectura

haz lo siguiente, antes de ejecutar el script

Código: Seleccionar todo

cd /storage/.kodi/addons/plugin.video.pelisalacarta/

find . -name "*.*" -exec chmod 777 {} \;
lo que deberia poner los archivos como lectura escritura

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 07 Mar 2016, 19:38
por hav
He dado permisos de escritura a todos los archivos y he ejecutado sh -x...
el resultado es este:

c/icon.png pelisalacarta-master/python/main-classic/lib pelisalacarta-master/python/main-classic/library_service.py pelisalacarta-master/python/main-classic/platformcode pelisalacarta-master/python/main-classic/resources pelisalacarta-master/python/main-classic/servers pelisalacarta-master/python/main-classic/tools pelisalacarta-master/python/main-classic/version.xml -d /storage/scripts
/storage/scripts/upgrade.sh: line 1: pelisalacarta-master/python/main-classic/LICENSE: Permission denied
+ echo copia el plugin
+ cp -rf /storage/scripts/pelisalacarta-master/python/main-classic/*
BusyBox v1.24.1 (2016-02-29 21:05:41 CET) multi-call binary.

Usage: cp [OPTIONS] SOURCE... DEST

Copy SOURCE(s) to DEST

-a Same as -dpR
-R,-r Recurse
-d,-P Preserve symlinks (default if -R)
-L Follow all symlinks
-H Follow symlinks on command line
-p Preserve file attributes if possible
-f Overwrite
-i Prompt before overwrite
-l,-s Create (sym)links
+ /storage/.kodi/addons/plugin.video.pelisalacarta/
/storage/scripts/upgrade.sh: line 1: /storage/.kodi/addons/plugin.video.pelisalacarta/: Permission denied
+ echo renombra zip origen
+ mv /storage/scripts/pelis.zip /storage/scripts/pelis.zip.old
+ echo borramos directorio descomprimido
+ rm -rf /storage/scripts/pelisalacarta-master
+ date +%d/%m/%Y %R
+ now=07/03/2016 19:32
+ echo 07/03/2016 19:32 proceso acabado
+ cat /storage/scripts/upgrade.log
07/03/2016 19:32 Inicia el proceso.
El fichero de git pesa: 34766452
El fichero local pesa: 0
Nos traemos el fichero
Unzip del fichero
copia el plugin
renombra zip origen
07/03/2016 19:32 proceso acabado